2016-03-03 86 views
1

我在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 

回答

1

当访问抱怨在这一行“没有定义变量” ......

Market = rs("Market") 

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

如果您的表单不包含名为的市场,您可能会遇到问题。无论是在解释,并Me!前缀控制的名称,以便访问明白你的意思是在窗体的默认集合命名项目(这是它Controls集)......

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

完美!谢谢! – Hituptony

0

试试这个:

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