- ベストアンサー
ACCESS2000VBAでエラー「型が一致しません」
ACCESS2000で、フォーム上にボタンを作り、そのボタンをクリック時に 以下のイベント プロシージャを実行させています。 Dim dbs As Database Dim rst As Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("採番_相談者") Dim Number rst.MoveFirst Number = rst!相談者番号 Number = Number + 1 Me.相談者NO = Number '相談者NOはフォーム上のテキストボックスです。 で上記 Set rst = dbs.OpenRecordset("採番_相談者") の所で、「実行時エラー 13 型が一致しません」とエラーになります。 テーブル:採番_相談者は、オートナンバー型のIDフィールドと相談者番号という7桁のテキスト型で ”1000001”が入っています。(ちなみに、数値型に変えても同じエラーでした。) 詳しい方教えてください。お願いします。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- Access2010 「型が一致しません。」エラー
お世話になっております。 テキストファイルからデータを取り込んで、テーブルにあるデータと同じデータのみを表示させるプログラムがあります。 コードが「001」のように整数の場合は問題ないのですが、「A001」のように英数のデータの場合は、このエラーが出てしまいます。 「実行時エラー13 型が一致しません。」 デバッグをクリックすると、下記の部分が黄色に反転します。 「If DFirst("コード", "テーブル", "コード = '" & avarFldData(0) & "'") Then」 テキストファイルのデータがテーブルにない場合はエラーが出ませんので、一致したデータがある場合のみエラーが出ます。 VBAはあまり詳しくありませんので、エラーが出なくなる方法を教えていただければ助かります。 よろしくお願いいたします。 Private Sub Form_Load() Dim dbs As Database Dim rst As Recordset Dim strImportDir As String Dim strFile As String Dim lngFileNum As Long Dim strData As String Dim avarFldData As Variant Dim iintLoop As Integer DoCmd.Hourglass True strImportDir = Application.CurrentProject.Path & "\" strFile = strImportDir & "File.TXT" Set dbs = CurrentDb GoSub ReadFile Me.Requery DoCmd.Hourglass False Exit Sub ReadFile: Set rst = dbs.OpenRecordset("履歴", dbOpenDynaset, dbAppendOnly) lngFileNum = FreeFile() Open strFile For Input As #lngFileNum Do Until EOF(lngFileNum) Line Input #lngFileNum, strData avarFldData = Split(strData, ",", , vbTextCompare) For iintLoop = 0 To UBound(avarFldData) avarFldData(iintLoop) = Trim$(avarFldData(iintLoop)) Next iintLoop If DFirst("コード", "テーブル", "コード = '" & avarFldData(0) & "'") Then With rst .AddNew !コード = avarFldData(0) .Update End With End If ' End If Loop Close #lngFileNum rst.Close Kill strFile Return End Sub
- ベストアンサー
- その他(データベース)
- エラー(型が一致しません。)の対処方法
またまたお世話になります。 たとえば以下の例です。 Dim dbs As Database, rec As Recordset Set dbs = CurrentDb Set rec = dbs.OpenRecordset("SELECT * FROM テーブル1") 最後の行の実行でエラーになります。何が悪くてどうしたらいいのでしょうか。初歩的ですが、よろしくお願いします。
- ベストアンサー
- Visual Basic
- 実行時エラー'13' :型が一致しません。
Windows XPで、Access 2002を使用しています。 テーブル1のフィールド1の値を、ハイフン区切りで分割をしたいと思い、split関数を使用して、 下記、VBAを実行しましたが、「実行時エラー'13' :型が一致しません。」と言うエラーが 発生して、先に進む事ができません。 ツール→参照設定で、Microsoft DAO 3.6 Object Libraryにチェックを入れたり外したりしましたが、 全く改善されず、同じエラーが発生します。 DAO.を付けると解決するとの事で、 Dim dbs As DAO.Database Dim rs As DAO.Connection としましても、同じエラーが出ます。 デバッグしますと、 Set rs = dbs.OpenRecordset("select フィールド1 from テーブル1") の所で発生しているようです。 Private Sub コマンド0_Click() Dim dbs As DAO.Database Dim rs As DAO.Connection Set dbs = CurrentDb Set rs = dbs.OpenRecordset("select フィールド1 from テーブル1") Dim Vartemp As Variant Vartemp = Split(rs, "-") Debug.Print Vartemp(0) Debug.Print Vartemp(1) Debug.Print Vartemp(2) Debug.Print Vartemp(3) End Sub 以上、初心者で、行き詰ってしまっておりますので、どうか宜しくお願いします。
- ベストアンサー
- Visual Basic
- アクセス2000(ADO)のレコード更新について
1件しかレコードがない[リスト連番T]テーブルのレコードを読みだして、(フィールド)リストNOをプラス1して更新したいです。 DOAが混ざっているのか、下記のようにエラーがでます。プラス1して更新する正しいプログラムを教えて下さい。 Private Sub リスト_Click() Dim DBS As Databasu Dim CNC As New ADODB.Connection Dim RST As New ADODB.Recordset Dim LISTNO As Intejer Set CNC = CurrentProject.Connection RST.Open "リスト連番T", CNC, adOpenKeyset,adLockOptimistic, adCmdTableDirect LISTNO = RST!リストNO RST.Close Set RST = Nothing CNC.Close Set CNC = Nothing Set DBS = CurrentDb Set RST = DBS.OpenRecordset("リスト連番T") With RST -----.Edit で コンパイルエラー----- メソッドまたはデータメンバーがみつかりません .Edit !リストNO = LISTNO + 1 .Update .Close
- ベストアンサー
- Visual Basic
- アクセス2000VBA DAOをADOに書き換えてください
アクセス2000VBA DAOをADOに書き換えてください 下記プログラムをADOに書き換えてください。(DAT1、DAT2はモジュールにて定義してあります) Option Compare Database Dim DBS As Database Dim QDF As QueryDef Dim RST As DAO.Recordset Dim COUNT1 Private Sub Form_Load() On Error Resume Next DAT2 = [Forms]![伝票]![HAKKOU1] Set DBS = CurrentDb Set QDF = DBS.QueryDefs("発行") With QDF .Parameters("DAT1") = DAT2 ’もしかしたら DAT2 ではエラーがでるかもしれません。 Set RST = .OpenRecordset() ’正しい記述を教えてください .Close End With With RST COUNT1 = !指示書 .Close End With
- ベストアンサー
- オフィス系ソフト
- OpenRecordSet 他について
Accessプロジェクトを使用しています。 Dim strSQL As String Dim DBS As Database Dim RST As DAO.Recordset Set DBS = CurrentDb Set RST = DBS.OpenRecordset("TESTDATA", dbOpenDynaset,dbReadOnly) 「実行時エラー'91': オブジェクト変数またはWithブロック変数が設定されていません。」 と出てきます。デバッグを押すと、 上記最終行でSTOPします。 次のように変更しても同じでした。 Set RST = DBS.OpenRecordset("TESTDATA") 又は Set RST = DBS.OpenRecordset("TESTDATA", dbOpenDynaset) ヘルプ等を見ると、Jetワークスペースでのみ 使用可と出てきます。 ADO,DAO,OpenRecordset等が理解しきれていないように思うのですが、 Access97(DAO?)では 何も出てこなかった上記のような内容、 何故Accessプロジェクトでは 上手くいかないのでしょうか?
- ベストアンサー
- SQL Server
- テーブルのリンク(ACCESS)
ACCESS2003で下記の記述で「実行時エラー ’3219’ 無効な処理です。」というエラーメッセージがでます。 外部mdbでテーブルをリンクさせるとこのエラーがでます。同じmdbファイルにデータテーブルを置くと問題なく処理できます。 参照設定も過去ログを見てチェックしています。 Dim dbs As DAO.Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("テーブル名", dbOpenTable) ACCESS97では何の問題もなかったのですが, 2003ではうまくいきません。 どうかよろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- Access2007 データ型エラーについて
お世話になっております。 下記のVBAでコードを数値型からテキスト型に変更したところ、「抽出条件でデータ型が一致しません。」というエラーが出ました。 デバッグをクリックすると、dbs.Execute strSQLの部分が黄色に反転しています。 VBAはあまり詳しくありませんので、エラーが出なくなる方法を教えていただければ助かります。 よろしくお願いいたします。 Private Sub 在庫差引_Click() Dim dbs As Database Dim rst As Recordset Dim strSQL As String Set dbs = CurrentDb Set rst = Me!サブフォーム.Form.RecordsetClone With rst .MoveFirst Do Until .EOF strSQL = "UPDATE マスター " & _ "SET 在庫数 = NZ(在庫数) - " & Nz(!数量, 0) & " " & _ "WHERE コード = " & !コード dbs.Execute strSQL .MoveNext Loop .Close End With End Sub
- ベストアンサー
- その他(データベース)
- Access2002のVBAエラーで
クエリで抽出したレコードを利用したいのですがうまくいきません。 Dim ds As Database Dim rs As Recordset Set ds = CurrentDb Set rs = ds.OpenRecordset("クエリ名") デバッグすると Set rs = ds.OpenRecordset("クエリ名") で止まります。 「実行時エラー’3061’ パラメータが少なすぎます。1を指定してください」のメッセージです。 どのような意味でしょう。教えてください。
- ベストアンサー
- オフィス系ソフト
- Access2010 「演算子がありません」エラー
フォーム上に別フォームを開くボタンがあるのですが、クリックすると実行時エラーが表示されます。 実行時エラー 3075 クエリ式”コード IN(○○,××)の構文エラー 演算子がありません。 コードを数値型からテキスト型に変更したのが原因だと思います。 エラーが出ない方法を教えていただければ助かります。 よろしくお願いいたします。 Dim rst As Recordset Dim strWhere As String Set rst = Me.RecordsetClone With rst If .RecordCount = 0 Then Beep Exit Sub End If .MoveFirst strWhere = "" Do Until .EOF strWhere = strWhere & IIf(Len(strWhere) > 0, ",", "") & !コード .MoveNext Loop .Close strWhere = "コード IN (" & strWhere & ")" End With DoCmd.OpenForm "フォーム", , , strWhere
- ベストアンサー
- その他(データベース)
- 「HL-L2375DW」で用紙切れのエラーが発生し、印刷ができない問題について解決策をご紹介します。
- Windows10を使用し、無線LANで接続している方向けの対処方法も詳しく説明します。
- さらに、用紙切れの原因やよくあるトラブル事例についても解説します。