【问题标题】:Access Variable Not Defined Error访问变量未定义错误
【发布时间】:2016-03-04 01:23:25
【问题描述】:

我在 Access 表单中有以下 VB 代码。我已将字段 Market 添加到我的查询中,但字符串太长。所以我不得不把它分成两个陈述。它似乎工作。我的问题是:

Market = rs("Market")

我得到变量未定义错误。它在我的查询中。它已添加到生成表单的查询中...我不确定从哪里开始查找...非常感谢任何帮助。

Dim db As DAO.Database, rs As DAO.Recordset
Dim strSQL As String

Set db = CurrentDb()

strSQL = "SELECT TOP 1 CPOrders.Cust, Customer.NAME, CPOrders.CP_Ref, CPOrders.Slsman, CPOrders.Assistant,CPOrders.Date_opn, CPOrders.CPSmall, CPOrders.InvIssu, CPOrders.InvNo, CPOrders.InvDate, CPOrders.DueDate, CPOrders.ETADate, CPOrders.Closed, CPOrders.Cust, CPOrders.Name, CPOrders.BuyerRef, CPOrders.ToCity, CPOrders.ToState, CPOrders.ToCtry, CPOrders.ToPort, CPOrders.Supplier, CPOrders.Origin, CPOrders.Product, CPOrders.GradeType, CPOrders.NoUnits, CPOrders.Pkg, CPOrders.Qty, CPOrders.TotSale, CPOrders.TotCost, CPOrders.GrMargin, CPOrders.[Sale$/Unit], CPOrders.[Cost$/Unit], CPOrders.OceanCost, CPOrders.OceanNotes, CPOrders.BLadingDate, CPOrders.USAPort, CPOrders.FOBCost, CPOrders.FASExportVal, CPOrders.InlandFrt, CPOrders.CommodCode, CPOrders.Notes, CPOrders.ProjCust, CPOrders.ProjValue, CPOrders.ContainerNumber, CPOrders.Vessel, CPOrders.Ord_Terms, CPOrders.Invoice_ID, CPOrders.Movement_Type, CPOrders.Market " & vbCrLf

strSQL = strSQL & "FROM Customer INNER JOIN CPOrders ON Customer.[CUST_#] = CPOrders.Cust ORDER BY CPOrders.Invoice_ID desc;"

Set rs = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
rs.MoveFirst





CP_Ref.Value = rs("CP_Ref")
Slsman.Value = rs("Slsman")
Assistant.Value = rs("Assistant")
Date_opn.Value = rs("Date_opn")
CPSmall.Value = rs("CPSmall")
InvIssu.Value = rs("InvIssu")
InvNo.Value = rs("InvNo")
InvDate.Value = rs("InvDate")
DueDate.Value = rs("DueDate")
Cust.Value = rs("Cust")
BuyerRef.Value = rs("BuyerRef")
ToCity.Value = rs("ToCity")
ToState.Value = rs("ToState")
ToCtry.Value = rs("ToCtry")
ToPort.Value = rs("ToPort")
Product.Value = rs("Product")
Supplier.Value = rs("Supplier")
GradeType.Value = rs("GradeType")
Origin.Value = rs("Origin")
NoUnits.Value = rs("NoUnits")
Pkg.Value = rs("Pkg")
Qty.Value = rs("Qty")
TotSale.Value = rs("TotSale")
TotCost.Value = rs("TotCost")
OceanCost.Value = rs("OceanCost")
OceanNotes.Value = rs("OceanNotes")
BLadingDate.Value = rs("BLadingDate")
USAPort.Value = rs("USAPort")
FOBCost.Value = rs("FOBCost")
Notes.Value = rs("Notes")
InlandFrt.Value = rs("InlandFrt")
CommodCode.Value = rs("CommodCode")
Vessel.Value = rs("Vessel")
ContainerNumber.Value = rs("ContainerNumber")
ProjCust.Value = rs("ProjCust")
ProjValue.Value = rs("ProjValue")
Movement_Type.Value = rs("Movement_Type")
Ord_Terms.Value = rs("Ord_Terms")
Market.Value = rs("Market")



rs.Close
db.Close

【问题讨论】:

    标签: ms-access vba ms-access-2007


    【解决方案1】:

    当 Access 在这一行抱怨 “变量未定义” ...

    Market = rs("Market")
    

    ...问题在于行首的Market; Access 认为这是未声明变量的名称。如果rs("Market") 是问题所在,则错误消息将是关于在集合中找不到项目。

    如果您的表单不包含名为 Market 的控件,则可能会发生您面临的问题。不管这是否是解释,在控件名称前加上 Me! 以便 Access 理解您的意思是表单默认集合(即其 Controls 集合)中的命名项...

    Me!Market.Value = rs("Market")
    

    【讨论】:

      【解决方案2】:

      试试这个:

      Dim db As DAO.Database, rs As DAO.Recordset
      Dim strSQL As String
      
      Set db = CurrentDb()
      
      strSQL = "SELECT TOP 1 CPOrders.Cust, Customer.NAME, CPOrders.CP_Ref, CPOrders.Slsman, CPOrders.Assistant, CPOrders.Date_opn, " & _
      strSQL = strSQL & "CPOrders.CPSmall, CPOrders.InvIssu, CPOrders.InvNo, CPOrders.InvDate, CPOrders.DueDate, " & _
      strSQL = strSQL & "CPOrders.ETADate, CPOrders.Closed, CPOrders.Cust, CPOrders.Name, CPOrders.BuyerRef, CPOrders.ToCity, " & _
      strSQL = strSQL & "CPOrders.ToState, CPOrders.ToCtry, CPOrders.ToPort, CPOrders.Supplier, CPOrders.Origin, CPOrders.Product, " & _
      strSQL = strSQL & "CPOrders.GradeType, CPOrders.NoUnits, CPOrders.Pkg, CPOrders.Qty, CPOrders.TotSale, CPOrders.TotCost, " & _
      strSQL = strSQL & "CPOrders.GrMargin, CPOrders.[Sale$/Unit], CPOrders.[Cost$/Unit], CPOrders.OceanCost, CPOrders.OceanNotes, " & _
      strSQL = strSQL & "CPOrders.BLadingDate, CPOrders.USAPort, CPOrders.FOBCost, CPOrders.FASExportVal, CPOrders.InlandFrt, " & _
      strSQL = strSQL & "CPOrders.CommodCode, CPOrders.Notes, CPOrders.ProjCust, CPOrders.ProjValue, CPOrders.ContainerNumber, CPOrders.Vessel, " & _
      strSQL = strSQL & "CPOrders.Ord_Terms, CPOrders.Invoice_ID, CPOrders.Movement_Type, CPOrders.Market " & _
      strSQL = strSQL & "FROM Customer INNER JOIN CPOrders ON Customer.[CUST_#] = CPOrders.Cust ORDER BY CPOrders.Invoice_ID desc;"
      
      Set rs = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
      rs.MoveFirst
      
      CP_Ref.Value = rs("CP_Ref")
      Slsman.Value = rs("Slsman")
      Assistant.Value = rs("Assistant")
      Date_opn.Value = rs("Date_opn")
      CPSmall.Value = rs("CPSmall")
      InvIssu.Value = rs("InvIssu")
      InvNo.Value = rs("InvNo")
      InvDate.Value = rs("InvDate")
      DueDate.Value = rs("DueDate")
      Cust.Value = rs("Cust")
      BuyerRef.Value = rs("BuyerRef")
      ToCity.Value = rs("ToCity")
      ToState.Value = rs("ToState")
      ToCtry.Value = rs("ToCtry")
      ToPort.Value = rs("ToPort")
      Product.Value = rs("Product")
      Supplier.Value = rs("Supplier")
      GradeType.Value = rs("GradeType")
      Origin.Value = rs("Origin")
      NoUnits.Value = rs("NoUnits")
      Pkg.Value = rs("Pkg")
      Qty.Value = rs("Qty")
      TotSale.Value = rs("TotSale")
      TotCost.Value = rs("TotCost")
      OceanCost.Value = rs("OceanCost")
      OceanNotes.Value = rs("OceanNotes")
      BLadingDate.Value = rs("BLadingDate")
      USAPort.Value = rs("USAPort")
      FOBCost.Value = rs("FOBCost")
      Notes.Value = rs("Notes")
      InlandFrt.Value = rs("InlandFrt")
      CommodCode.Value = rs("CommodCode")
      Vessel.Value = rs("Vessel")
      ContainerNumber.Value = rs("ContainerNumber")
      ProjCust.Value = rs("ProjCust")
      ProjValue.Value = rs("ProjValue")
      Movement_Type.Value = rs("Movement_Type")
      Ord_Terms.Value = rs("Ord_Terms")
      Market.Value = rs("Market")
      
      rs.Close
      db.Close
      

      【讨论】:

        猜你喜欢
        • 2021-06-07
        • 2016-05-08
        • 1970-01-01
        • 1970-01-01
        • 2015-01-25
        • 2018-05-03
        • 2014-04-25
        • 2021-04-10
        • 2011-12-21
        相关资源
        最近更新 更多