我正在尝试将当前登录到表X中的记录的用户名写入用于使用新记录更新表Y.
以下是我使用的代码:
Private Sub UPD_Click()
On Error GoTo Err_UPD_Click
DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\Working\Test.mdb", acTable, "tblTest", "tblTest_Import", False
DoCmd.RunSQL "ALTER TABLE tblTest_Import ADD COLUMN [CreatedBy] Text(25);"
Dim myDB As Database
Set myDB = CurrentDb
myDB.Execute "UPDATE tblTest_Import " _
& "SET [tblTest_Import].[CreatedBy] = [Forms]![frmLogin]![txtUserName];"
myDB.Execute "INSERT INTO tblMain(Year, CreatedBy)"_
& "SELECT tblTest_Import.Year, tblTest_Import.CreatedBy " _
& "FROM tblTest_Import " _
& "WHERE (((Exists (SELECT * FROM tblMain " _
& "WHERE tblMain.ID = tblTest_Import.ID))=False));"
Exit_UPD_Click:
Exit Sub
Err_UPD_Click:
MsgBox Err.Description
Resume Exit_UPD_Click
End Sub
表单frmLogin保持打开但隐藏(Me.Visible = False)。
问题是tblTest_Import中的字段CreatedBy没有获得更新,Access返回此消息:"参数太少。预计1。"并且代码中没有任何行被突出显示。
我尝试添加
Dim frmLogin As Form
Set frmLogin = Screen.ActiveForm
但它没有帮助。
我的代码出了什么问题?
答案 0 :(得分:1)
我找到了解决方案:)
我只需要在代码的这一部分添加几个引号
myDB.Execute "UPDATE tblTest_Import " _
& "SET [tblTest_Import].[CreatedBy] = '" & [Forms]![frmLogin]![UserName] & "';"
宾果!