Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 访问VBA代码以插入到两个不同的表中_Sql_Ms Access_Vba - Fatal编程技术网

Sql 访问VBA代码以插入到两个不同的表中

Sql 访问VBA代码以插入到两个不同的表中,sql,ms-access,vba,Sql,Ms Access,Vba,我有一个用户表单,可以插入到“用户”表和“组织者”表中 当我点击一个按钮时,用户数据被毫无问题地插入,但组织者表数据没有问题。它给我一个错误,说“由于类型转换失败,ms access set 1 Field为null” 注意:用户id是用户表中的主键,是组织者表中的外键。 其数据类型为长整数 我将非常感谢任何帮助 Private Sub InsertSqlIntoOrgTable() Dim orgUserId As Long, sqlOrgInsertUsrId As String

我有一个用户表单,可以插入到“用户”表和“组织者”表中 当我点击一个按钮时,用户数据被毫无问题地插入,但组织者表数据没有问题。它给我一个错误,说“由于类型转换失败,ms access set 1 Field为null”

注意:用户id是用户表中的主键,是组织者表中的外键。 其数据类型为长整数

我将非常感谢任何帮助

Private Sub InsertSqlIntoOrgTable()

   Dim orgUserId As Long, sqlOrgInsertUsrId As String

   orgUserId = getLastUserId()

   sqlOrgInsertUsrId = "INSERT INTO ORGANIZER (USER_ID) VALUES ('&orgUserId&')"

   DoCmd.RunSQL sqlOrgInsertUsrId

End Sub
此函数获取插入到上述代码中以将其插入到organizer表中的最后一个用户\u id

Private Function getLastUserId() As Long

    Dim lastUserId As Long

    getLastUserId = DMax("USER_ID", "USER")

    getLastUserId = lastUserId

End Function
编辑:

我的类型转换失败错误已通过将sql语句修改为

 sqlOrgInsertUsrId = "INSERT INTO ORGANIZER (USER_ID) VALUES (" & orgUserId & ")"
现在,我想将取自同一用户的“organization_name”添加到“Organizator”表中。 在上面的同一个子部分中,我添加了一些东西来完成这项工作,但它提示我在一个小对话框中再次插入值(组织名称),然后给我另一个错误,说“ms access由于违反验证规则而将一行设置为空”

注意:我没有在任何地方为“组织名称”设置任何验证规则


有什么帮助吗?

您的getLastUserID函数错误。尝试:

Private Function getLastUserId() As Long

    Dim lastUserId As Long

    lastUserId = DMax("USER_ID", "USER")

    getLastUserId = lastUserId

End Function

如果这还不能解决问题,那么在分配SQL后向我们显示sqlOrgInsertUsrId的内容

您的连接是错误的。一定是

sqlOrgInsertUsrId = "INSERT INTO ORGANIZER (USER_ID) VALUES (" & orgUserId & ")"

这就解决了
类型转换失败的问题,之后应用了cboden的更正。

我将用于将用户id插入到organizer中的sql命令更改为:sqlOrgInsertUsrId=“INSERT into organizer(user_id)值(&ORGIUSERID&)”,它起作用:)这是一个新问题。请在这里接受答案并创建一个新问题,否则事情会变得相当混乱。
sqlOrgInsertUsrId = "INSERT INTO ORGANIZER (USER_ID) VALUES (" & orgUserId & ")"