Accessでイベントを実行すると、たびたび突然終了していました。
RecordSetでFieldsの値にアクセスすると、この現象が起きているようです。
たとえば以下のような値を取得しています。
それぞれ 20200501 を示しているはずのフィールドです。
Local\2
2: ??
※コードは、前者「cmd移動情報追加」をご参照ください
MSysNavPaneGroupCategories
????邸???貝?????邸???貝
※コードは、後者「cmd集計」をご参照ください
このファイルでリレーションシップは利用していません。
解決にあたって行うべきことは何でしょうか。
必要な情報がありましたら、ご指摘ください。
※本質問は、Microsoftコミュニティでも同じ質問をしています。
できるだけ早く解決したく、ご了承いただければ幸いです。
Private Sub cmd移動情報追加() Dim dbs As DAO.Database Dim t_Idou As DAO.Recordset Dim q_Idou As DAO.Recordset Dim lngStart(1) As Long Dim strCrit As String Dim strID As String Set dbs = Application.CurrentDb Set t_Idou = dbs.OpenRecordset(Name:="移動対象_算定日", Type:=dbOpenDynaset) Set q_Idou = dbs.OpenRecordset(Name:="Q_移動抽出", Type:=dbOpenDynaset) Do Until q_Idou.EOF If Not q_Idou(1) Like strID Then Erase lngStart() strID = q_Idou(1) lngStart(1) = CLng(Left(q_Idou(7), 8)) If lngStart(0) = 0 Then strCrit = "T_NO Like '" & q_Idou(1) & "'" Else strCrit = "T_NO Like '" & q_Idou(1) & "' AND T_DATE >" & lngStart(0) End If t_Idou.FindFirst strCrit Do Until t_Idou.NoMatch t_Idou.Edit ' 以下の値の取得で突然終了する If lngStart(1) > t_Idou(2) Then t_Idou(0) = q_Idou(9) Else If q_Idou(12) = 0 Then t_Idou(0) = q_Idou(4) End If End If t_Idou.Update t_Idou.FindNext strCrit Loop lngStart(0) = lngStart(1) q_Idou.MoveNext Loop q_Idou.Close t_Idou.Close End Sub
Private Sub cmd集計() Dim dbs As DAO.Database Dim rs日 As DAO.Recordset Set dbs = Application.CurrentDb strSQL = "SELECT distinct Q_p_data.[T_KAIKEI_DATE]" strSQL = strSQL & "FROM Q_p_data;" Set rs日 = dbs.OpenRecordset(strSQL) str日 = "" Do Until rs日.EOF ' 以下の値の取得で突然終了する str日 = str日 & Chr(34) & rs日.Fields(0) & Chr(34) & "," rs日.MoveNext Loop str日 = Left(str日, (Len(str日) - 1)) rs日.Close Set rs日 = Nothing End Sub
回答2件
あなたの回答
tips
プレビュー