【问题标题】:String Not Working As Table Name - Access VBA -字符串不能作为表名 - 访问 VBA -
【发布时间】:2016-12-30 17:40:18
【问题描述】:

以下代码的开头应该是获取表单文本框中文件名的BaseName,并将其设置为字符串“tblnewbid”。 Debug.Print tblnew 出价完全按照预期打印出正确的表名称。我验证了字符完全匹配,并且有一个与该名称匹配的实际表。

当我运行代码时出现错误:找不到表或约束。如果我手动将 tblnew 更改为实际的表名,则代码运行良好。难道我需要将 tblnewbid 调暗为字符串以外的东西吗?

Private Sub btnInsertRegions_Click()

DoCmd.Hourglass True  ' turn on Hourglass


Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim FSO As New FileSystemObject
Dim tblnewbid As String

Set db = CurrentDb
tblnewbid = FSO.GetBaseName(Me.txtFileName)


Debug.Print tblnewbid

db.Execute "ALTER TABLE tblnewbid ADD COLUMN O_StateRegion CHAR", dbFailOnError
db.Execute "ALTER TABLE tblnewbid ADD COLUMN D_StateRegion CHAR", dbFailOnError

Set rs = db.OpenRecordset("Select [OriginState] from [tblnewbid];")

rs.MoveFirst

    strSQL = "UPDATE [tblnewbid] INNER JOIN [tblStates]"
    strSQL = strSQL & " ON [tblStates].[StateAbbrev] = [tblnewbid].[OriginState]"
    strSQL = strSQL & " SET [tblnewbid].[O_StateRegion]=[tblStates].[StateRegion]"


    db.Execute (strSQL), dbFailOnError


rs.MoveFirst

    strSQL = "UPDATE [tblnewbid] INNER JOIN [tblStates]"
    strSQL = strSQL & " ON [tblStates].[StateAbbrev] = [tblnewbid].[DestinationState]"
    strSQL = strSQL & " SET [tblnewbid].[D_StateRegion]=[tblStates].[StateRegion]"


    db.Execute (strSQL), dbFailOnError

rs.Close

Set rs = Nothing

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    当你将一个变量放在双引号内时,它不再是一个变量,而是一个文字字符串。

    您想要做的是对变量进行评估,然后将其放置在字符串中。您可以通过串联来做到这一点:

    即:

    db.Execute "ALTER TABLE " & tblnewbid & " ADD COLUMN O_StateRegion CHAR", dbFailOnError
    

    将此连接应用于需要评估变量的每一行。

    【讨论】:

    • 这绝对让我克服了那个错误。非常感谢。但是,一旦我阅读了您的答案,我需要在其余代码中执行此操作是有道理的。 (请参阅此评论的结尾)但是当我这样做时,我在下一行得到错误提示:参数太少。预期 1. 'Set rs = db.OpenRecordset("Select [OriginState] from " & tblnewbid & " ; ")' 有什么想法吗?
    • 没关系。我在实际表中发现了错误。字段名称不正确。我还没有运行代码,但我相信它会正常工作。
    • 它确实运行得很完美。谢谢!
    • 抱歉耽搁了,我应该更清楚地在整个代码中应用它。很高兴我能帮上忙!
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    相关资源
    最近更新 更多