2015-01-08 27 views
0

因此,我被告知可以为此表单创建一些副本替换功能。访问变量中的VB脚本未找到

这是我在VB中的编码尝试:

首先我使用DAO连接到数据库。然后我使用已验证的SELECT语句将最后一条记录插入到数据库中。然后我尝试用查询中的值重新填充控件,但我收到参考错误。

Private Sub AutoFill_Click() 
Dim db As DAO.Database, rs As DAO.Recordset 
Dim strSQL As String 

Set db = CurrentDb() 
strSQL = "SELECT DISTINCTROW TOP 1 CPOrders.Cust, Customer.NAME, CPOrders.CP_Ref, CPOrders.Slsman, CPOrders.Date_opn, CPOrders.CPSmall, CPOrders.InvIssu, CPOrders.InvNo, CPOrders.InvDate, CPOrders.DueDate, CPOrders.ETADate, CPOrders.Closed, 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 FROM Customer INNER JOIN CPOrders ON Customer.[CUST_#] = CPOrders.Cust ORDER BY CPOrders.CP_Ref desc;" 
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly) 
rs.MoveFirst 

CP_Ref.ControlSource = rs!CP_Ref 
Slsman.ControlSource = rs!Slsman 
CPSmall.ControlSource = rs!CPSmall 
InvIssu.ControlSource = rs!InvIssu 
InvDate.ControlSource = rs!InvDate 
DueDate.ControlSource = rs!DueDate 
Closed.ControlSource = rs!Closed 



rs.Close 
db.Close 

控制源参考选取并自动完成单词。

我会这样认为。虽然我没有用我的SELECT语句中的记录填充所有的值,但它会填充,但我得到的值应该是#NAME?。我也在我的代码中得到了一个突破,它说“无效的空值使用”

为什么?我很感谢你们的输入,并且我可以根据需要提供屏幕截图。我认为这涉及到参照系,但我不确定。任何帮助深表感谢。

回答

0

您正在使用SELECT语句中的字段名称,就像它们是变量一样。

CP_Ref.ControlSource = rs("CP_Ref") 
Slsman.ControlSource = rs("Slsman") 
CPSmall.ControlSource = rs("CPSmall") 
InvIssu.ControlSource = rs("InvIssu") 
InvDate.ControlSource = rs("InvDate") 
DueDate.ControlSource = rs("DueDate") 
Closed.ControlSource = rs("Closed") 

当你有制定出来的,首先识别可能是NULL任何字段,使用类似

SELECT Iif(IsNull([InvDate]), '', [InvDate]) As [InvDate], ...

解决“无效使用空的”问题SELECT语句传递最小的空字符串而不是NULL值。

+0

非常感谢,完美地解决了我的谜语先生。 – Hituptony

+0

你能看到我最新的问题吗?我需要这个按钮的帮助...... – Hituptony