Function DATAset() As String
On Error GoTo err1
Dim msg As Integer
Dim DB1, DB2, DB3 As Database
Dim RC1, RC2, RC3, sql1, sql2 As DAO.Recordset
Dim DefQry As QueryDef
dim myid as integer
Set DB1 = CurrentDb
Set RC1 = DB1.OpenRecordset("table1", dbOpenDynaset)
Set RC2 = DB1.OpenRecordset("table2", dbOpenDynaset)
Set RC3 = DB1.OpenRecordset("table3", dbOpenDynaset)
MyId = Forms!MAIN_FRM1!ID.Value
If MyId < 1 Then
GoSub Append_Rutine '<-略します
Else
GoSub Update_Rutine
End If
Exit Function
'--------------------------------------------------------------------Append_Rutine:
'--------------------------------------------------------------------
略
Return
'--------------------------------------------------------------------Update_Rutine:
'--------------------------------------------------------------------Dim JCEC, SQLtxt As String
SQLtxt = "SELECT * FROM TABLE1 WHERE DEL_FLG = 0 AND ID = " & MyId
Set DefQry = DB1.CreateQueryDef("", SQLtxt)
Set sql1 = DefQry.OpenRecordset()
If sql1.RecordCount <> 0 Then
Else
Exit Function
End If
'↑正常
'業者名<String>
If Forms!MAIN_FRM1!Name.Value <> "" Then
SQLtxt = "UPDATE TABLE1 set mName = '" & Forms!MAIN_FRM1!NAME.Value & "' "
Else: SQLtxt = "UPDATE TABLE1 set mName = Null ": End If
SQLtxt = SQLtxt & "where ID = " & MyId
Set DefQry = DB1.CreateQueryDef("", SQLtxt)
Set sql1 = DefQry.OpenRecordset()
↑ この命令を実行するとエラーになる
環境は?
If Forms!MAIN_FRM1!Name.Value <> "" Then
SQLtxt = "UPDATE TABLE1 set mName = '" & Forms!MAIN_FRM1!NAME.Value & "' "
Else: SQLtxt = "UPDATE TABLE1 set mName = Null ": End If
このIf文はどっちを通ってもエラーですか?
こんちは。
今回、HIRO Chan さんが行いたいのは
SQLtxt に設定されたSQLを実行したいのでしょうか?
今回、
Set sql1 = DefQry.OpenRecordset()
で、エラー"3219:無効な処理です。"ですがでるのは、
SQLtxtに設定されているSQL文が、ACCESSでいうアクションクエリーだからと思います。
SQL文を実行したいなら
Set DefQry = DB1.CreateQueryDef("", SQLtxt)
DefQry.Execute [任意のパラメータ]
だと思いますが・・・。
私の意識違いならごめんなさいです。
ツイート | ![]() |