ODBC;DSN=Test;UID=;PWD=;SourceDB=\\server\folder\Test\prime.dbc;SourceType=DBC;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;
然后使用该连接的功能静态查询。 prime.dbc中有5个表。
Select field1, field2 field3
From Table1
现在基于下面的函数,我想将funTestShipUic提供给FROM子句而不是静态Table1。
Public Function funTestShipUic() As String
funTestShipUic = lngTestShipUic
End Function
我试过......
Select field1, field2 field3
From funTestShipUic()
但是我得到了ODBC - 调用失败了。 ODBC Visual FoxPro驱动程序无效的下标引用。
答案 0 :(得分:2)
很难理解你实际想要实现的目标。
您可以使用字符串连接在VBA中构建动态SQL,如下所示:
strSql = "SELECT field1, field2 FROM " & myFunctionThatReturnsATableName()
Set myRecordset = CurrentDb.OpenRecordset(strSql)
您还可以将该SQL分配给现有查询,包括PassThrough查询。
DB.QueryDefs("myQuery").SQL = strSql
答案 1 :(得分:0)
首先,除非使用VFP6及更早版本或ADS服务器,否则不应将ODBC与VFP一起使用。而只需使用OLEDB(VFPOLEDB)。然后,您可以将函数的结果作为参数传递。即:
input {
height:34px;
}
并将funTestShipUic()添加到参数集合中。如果您使用ODBC,那么在直通查询中它将是:
Select field1, field2 field3 From (?)
参数由驱动程序处理,SQL不会按原样发送到服务器。