从表单写入表的用户名

时间:2015-02-26 19:14:46

标签: ms-access access-vba

我正在尝试将当前登录到表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

但它没有帮助。

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:)

我只需要在代码的这一部分添加几个引号

myDB.Execute "UPDATE tblTest_Import " _
     & "SET [tblTest_Import].[CreatedBy] = '" & [Forms]![frmLogin]![UserName] & "';"

宾果!