hatena
hatena
2020/04/03 (金) 09:31:08
おはようございます。今回は届いていました。
動化確認してみましたら、確かにそのエラーがでますね。クエリも普通に開けるので特に問題はないですね。
ためしに、ADODBの処理をDAOに書き直してみましたら、エラーなく実行できるようになりました。
Private Sub コマンド25_Click()
Dim a As String
a = MsgBox("請求書履歴に登録しますか。はいを押すと請求書履歴に保存されます。", vbOKCancel)
If a = vbCancel Then
MsgBox ("中止しました")
Exit Sub
End If
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
'Connectionは一つで共有する
Set DB = Application.CurrentDb
Set rs = DB.OpenRecordset("Q_月間請求書履歴", dbOpenForwardOnly, dbReadOnly)
Set rs1 = DB.OpenRecordset("T_seikyu", dbOpenDynaset, dbAppendOnly)
Do Until rs.EOF
'"月間請求書履歴"(rs)のデータを"データ"(rs1)に新規追加
rs1.AddNew
rs1!請求書NO = rs!請求書NO
rs1!請求日 = rs!請求日
rs1!会社名 = rs!会社名
rs1!氏名 = rs!氏名
rs1!現場名 = rs!現場名
rs1!工事名 = rs!工事名
rs1!請求金額 = rs!請求金額
rs1.Update
'"月間請求書履歴"(rs)を次レコードへ移動
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
rs1.Close
Set rs1 = Nothing
DB.Close
Set DB = Nothing
DoCmd.OpenForm "F_seikyu"
End Sub
なぜ、ADODBでは失敗するのかは原因が分かりませんが、DAOの方がAccessのテーブルとは相性がいいと思います。
通報 ...
凍結されています。