Ms access 如何将主窗体更新为子窗体

Ms access 如何将主窗体更新为子窗体,ms-access,ms-access-2007,vba,Ms Access,Ms Access 2007,Vba,嘿,有谁能帮我一个忙吗?因为我现在正在排除这个错误,一个星期都没找到运气 在我编辑信息、更改信息并单击“更新”后,它会给我一个错误,我尝试了括号,但没有成功 获取im时出错(预期参数太少1。运行时错误“3061”) 这是我的代码我想我的代码中有一个bug: Private Sub cmdUpdate_Click() Dim strSql As String strSql = "UPDATE PlantTransaction " & _ "SET TransactionID=" &

嘿,有谁能帮我一个忙吗?因为我现在正在排除这个错误,一个星期都没找到运气

在我编辑信息、更改信息并单击“更新”后,它会给我一个错误,我尝试了括号,但没有成功

获取im时出错(预期参数太少1。运行时错误“3061”)

这是我的代码我想我的代码中有一个bug:

Private Sub cmdUpdate_Click()
Dim strSql As String
strSql = "UPDATE PlantTransaction " & _
"SET TransactionID=" & Me.txtTranID & _
",[Plant Number]='" & Me.txtPlantNo & "'" & _
",TransactionDate=#" & Me.txtTransDate & "#" & _
",Opening_Hours='" & Me.txtOpeningHRS & "'" & _
",Closing_Hours='" & Me.CloseHrs & "'" & _
",Fuel='" & Me.txtFuel & "'" & _
",[Fuel Cons Fuel/Hours]='" & Me.txtFuelConsFuelHr & "'" & _
",[Hour Meter Replaced]='" & Me.txtHrMtrRep & "'" & _
",Comments='" & Me.txtComments & "'" & _
",[Take on Hour]='" & Me.txtTOH & "'" & _
" WHERE TransactionID=" & Me.PlantTransactionQuery.Form.Recordset.Fields("Tr ansactionID")
Debug.Print strSql ' <- prints to Immediate window
CurrentDb.Execute strSql, dbFailOnError
cmdClear_Click
Me.PlantTransactionQuery.Form.Requery
End Sub
Private Sub cmdUpdate\u Click()
作为字符串的Dim strSql
strSql=“更新PlantTransaction”&_
“SET TransactionID=“&Me.txtranid&_
“,[工厂编号]=”&Me.txtPlantNo&“”&_
,TransactionDate=#“&Me.txtTransDate&”#“&_
“,开放时间=”&Me.txtOpeningHRS&“”&_
“,收盘时间=”&Me.CloseHrs&“”&_
“,Fuel=”&Me.txtfoure&“”&_
“,[Fuel Cons Fuel/Hours]=”&Me.txtfoureconsfuelhr&“”&_
“,[Hour Meter Replaced]='”&Me.txthrmtrep&“'”&_
“,Comments='”&Me.txtComments&“'”&_
“,[Take on Hour]=”&Me.txtTOH&“”&_
“WHERE TransactionID=“&Me.PlantTransactionQuery.Form.Recordset.Fields”(“Tr TransactionID”)

Debug.Print strSql'在代码中包含这一行是明智的:

Debug.Print strSql'任何时候,只要您将一条包含大量用户输入的长SQL语句“粘在一起”,您就会面临

  • 正确划分字符串和日期

  • 这些字段中的转义分隔符(通常在文本字段中使用引号),以及

  • 在正确的位置获取所有必需的逗号

  • 通过使用记录集执行更新,可以避免这些麻烦:

    Dim rst As DAO.RecordSet
    Set rst = CurrentDb.OpenRecordset("PlantTransaction", dbOpenDynaset)
    rst.FindFirst "TransactionID=" & Me.PlantTransactionQuery.Form.Recordset.Fields("Tr ansactionID")
    If Not rst.NoMatch Then
        rst.Edit
        rst!TransactionID = Me.txtTranID
        rst![Plant Number] = Me.txtPlantNo
        rst!TransactionDate = Me.txtTransDate
        rst!Opening_Hours = Me.txtOpeningHRS
        rst!Closing_Hours = Me.CloseHrs
        rst!Fuel = Me.txtFuel
        rst![Fuel Cons Fuel/Hours] = Me.txtFuelConsFuelHr
        rst![Hour Meter Replaced] = Me.txtHrMtrRep
        rst!Comments = Me.txtComments
        rst![Take on Hour] = Me.txtTOH
        rst.Update
    End If
    rst.Close
    Set rst = Nothing