Access2010実行時エラー-21473525

このQ&Aのポイント
  • 特定のレコードでボタンをクリックすると、以下のエラーが表示されて、「Me.チェック = True」が黄色に反転します。実行時エラー ’-2147352567(8002009)’ データは変更されています。
  • エラーが出ない方法を教えていただければ助かります。
  • 詳細な文法的な修正方法を教えていただければありがたいです。
回答を見る
  • ベストアンサー

Access2010実行時エラー-21473525

特定のレコードでボタンをクリックすると、以下のエラーが表示されて、「Me.チェック = True」が黄色に反転します。 実行時エラー ’-2147352567(8002009)’ データは変更されています。 文法的におかしなことをしていると思うのですが、エラーが出ない方法を教えていただければ助かります。 よろしくお願いいたします。 Dim dbs As Database Dim strSQL As String Set dbs = CurrentDb strSQL = "UPDATE マスター " & _ "SET 在庫数 = NZ(在庫数) + " & Nz(Me.入庫数量, 0) & " " & _ "WHERE コード = '" & Me.コード & "'" dbs.Execute strSQL Me.チェック = True

質問者が選んだベストアンサー

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

なにやっているのか良くわかんないけど、 直前に、 me.refresh ってやると、なにかかわる?

kami21
質問者

お礼

できました!これで解決です。 ありがとうございました。

関連するQ&A

  • 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

  • Access2007 サブフォームのレコードを一括印刷する方法

    お世話になっております。 サブフォームは帳票型になっており、下記で表示されている全レコードのチェックが入ります。 これと平行して、各レコードを印刷したいのですが、カーソルがあるレコードのみがレコードの数だけ印刷されてしまいます。 これを各レコードごとに印刷したいと思います。 Dim dbs As Database Dim rst As Recordset Dim strSQL As String Set dbs = CurrentDb Set rst = Me.RecordsetClone With rst If .RecordCount > 0 Then .MoveFirst Do Until .EOF .Edit !チェック = True DoCmd.OpenReport "印刷", acNormal, , "コード=" & Me.コード .Update .MoveNext Loop End If .Close End With ご教授いただければ幸いです。よろしくお願いいたします。

  • accessのvbaでの実行時エラーについて

    いつもお世話になっております。 Accessのvbaで下記のコードを実行して、データを 取得したいのですが、OpenRecordsetのところで 「実行時エラー'3615' 式で型が一致しません。」 というエラーがでてしまいます。 ーーーーーーーーーーーーーーーーーーーーーーー Dim db As Database Dim Rec As Recordset Dim strSql As String strSql = "SELECT 入金日 FROM 入金チェック WHERE ID IN(SELECT ID FROM 入居者管理 WHERE 物件名 = '" &  strBukken & "')" Set db = CurrentDb() Set Rec = db.OpenRecordset(strSql) ーーーーーーーーーーーーーーーーーーーーーーー 副問合せのしかたがまずいのか、 どうもよくわかりません。 お手数ですが、お分かりの方がおられましたら ご教示お願いいたします。

  • Access2007 コンパイルエラーについて

    お世話になっております。 Access2003で問題なく使っていたプログラムを2007用accdbに変換して2007で動かしたところ、コンパイルエラーが出るようになりました。 エラー表示 コンパイルエラー:メソッドまたはデータ メンバが見つかりません。 コードは以下のとおりで(抜粋)、.Edit部分が反転します。 簡単なVBAはわかりますが、今回のエラーは何が原因かわかりませんので、ご教授いただければ幸いです。 よろしくお願いいたします。 Private Sub 元に戻す1_Click() Dim dbs As Database Dim rst1 As Recordset Dim rst2 As Recordset Dim strSQL As String Dim lngTmpVol As Long Dim lngSubVol As Long DoCmd.RunCommand acCmdSaveRecord Set dbs = CurrentDb '売上構成テーブルから画面上のb伝票コードのレコードセットを開く strSQL = "SELECT bbコード, 数量 FROM 売上構成 " & _ "WHERE b伝票コード = " & Me!b伝票コード & _ " ORDER BY 売上構成コード DESC" Set rst1 = dbs.OpenRecordset(strSQL) '売上構成の読み込みループ Do Until rst1.EOF 'カレントレコードの数量を変数に保存 lngTmpVol = rst1!数量 'カレントレコードのbbコードと画面上の社員コードで出庫履歴のレコードセットを開く strSQL = "SELECT 出庫数量, 確定数量, 返却数量 FROM 出庫履歴 " & _ "WHERE bbコード = " & rst1!bbコード & " AND 社員コード = " & Me!社員コード & _ " ORDER BY 出庫日 DESC, 出庫コード DESC" Set rst2 = dbs.OpenRecordset(strSQL) With rst2 If .RecordCount > 0 Then '出庫履歴の読み込みループ Do Until .EOF .Edit If Nz(!確定数量) >= lngTmpVol Then '数量すべてを確定数量から減算できるとき '減算後の数量を取得 lngSubVol = Nz(!確定数量) - lngTmpVol !確定数量 = IIf(lngSubVol <> 0, lngSubVol, Null) lngTmpVol = 0 Else '数量すべては確定数量から減算できないとき lngTmpVol = lngTmpVol - Nz(!確定数量) !確定数量 = Null End If .Update 'すべてを割り当てたらループを抜ける If lngTmpVol <= 0 Then Exit Do .MoveNext Loop End If .Close End With rst1.MoveNext Loop rst1.Close End Sub

  • 実行時エラー 3061 パラメータが少なすぎますのエラー

    Accessで在庫管理のようなものを作成しています。 在庫数のアップデート処理を行おうとすると、「実行時エラー 3061 パラメータが少なすぎます。1を指定してください」のエラーが表示さてしまいます。 Private Sub ZaikoUpdate() Dim strsql As String With Application.CurrentDb If Me.opt凍結使用区分 = cZaikoIn Then strSql = "Update Tストックマスタ" _ & " set 凍結数合計 = 凍結数合計 + "& Me.txt数量.value _ & " ,細胞No = '"& Me.cmb細胞No.value & "'" &" where レーンNo = '"& Me.cmb商品No.value & "'" ElseIf Me.opt凍結使用区分 = cZaikoOut Then      & " set 使用数合計 = 使用数合計 + "& Me.txt数量.value _ & " ,細胞No = '"& Me.cmb細胞No.value & "'" &" where レーンNo = '"& Me.cmb商品No.value & "'" 細胞Noをアップデートさせない場合はうまく行くのですが、& " ,細胞No = '"& Me.cmb細胞No.value & "'" を入れると上記エラーが出てしまいます。 どこかおかしいのでしょうか? どなたかアドバイスお願いいたします。

  • 実行時エラー'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 以上、初心者で、行き詰ってしまっておりますので、どうか宜しくお願いします。

  • 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”が入っています。(ちなみに、数値型に変えても同じエラーでした。) 詳しい方教えてください。お願いします。

  • エラー(型が一致しません。)の対処方法

    またまたお世話になります。 たとえば以下の例です。 Dim dbs As Database, rec As Recordset Set dbs = CurrentDb Set rec = dbs.OpenRecordset("SELECT * FROM テーブル1") 最後の行の実行でエラーになります。何が悪くてどうしたらいいのでしょうか。初歩的ですが、よろしくお願いします。

  • テーブルのリンク(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ではうまくいきません。 どうかよろしくお願いします。

  • 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