通过循环遍历值并跳过空白,将多行插入Access数据库

时间:2015-01-09 02:36:42

标签: vba ms-access access-vba

我试图在我的表单上循环一系列组合框,跳过空白然后将它们添加到数据库中,但它似乎失败了 - 任何想法我怎么能这样做?

For i = 1 To 8
    If Not (("cboOption" & i).Value = "") Then
        StrSQL = "INSERT INTO db (mID, uID) VALUES (("cboOption" & i).Value = "", StudentID.Value);"
        DoCmd.SetWarnings False
        DoCmd.RunSQL StrSQL
        DoCmd.SetWarnings True
    End If
Next

1 个答案:

答案 0 :(得分:2)

嗯,我不是百分百肯定,但你的代码可能会抛出一个方法或数据没有识别错误。无论如何,以下代码应该对它进行排序。

For i = 1 To 8
    If Len(Me.Controls("cboOption" & i).Value & vbNullString) <> 0 Then
        StrSQL = "INSERT INTO db (mID, uID) VALUES (" & _
                  Me.Controls("cboOption" & i).Value & ", " & _
                  StudentID.Value & ");"
        DoCmd.SetWarnings False
        DoCmd.RunSQL StrSQL
        DoCmd.SetWarnings True
    End If
Next

如果值是字符串值,请确保将值包装在单引号内。

        StrSQL = "INSERT INTO db (mID, uID) VALUES ('" & _
                  Me.Controls("cboOption" & i).Value & "', " & _
                  StudentID.Value & ");"