2016-03-03 84 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