Sql DAO数据绑定刷新()调用-运行时错误30613075

Sql DAO数据绑定刷新()调用-运行时错误30613075,sql,vb6,ms-access-2003,Sql,Vb6,Ms Access 2003,我使用DAO数据组件将控件元素绑定到表单上。我在绑定到数据组件的记录集中动态创建的查询。这很有效。但是,当我运行Data.Refresh并且SQL Where语句包含通过不同别名对同一个表的引用时,会显示一个错误 注意:下面的sql查询在MS Access查询设计器中运行良好 以下工作将起作用: SELECT WIZ_APPL.*, TRANS_PRI.Text AS LocalizedText FROM TRANSLATIONS AS TRANS_PRI, WIZ WHER

我使用DAO数据组件将控件元素绑定到表单上。我在绑定到数据组件的记录集中动态创建的查询。这很有效。但是,当我运行Data.Refresh并且SQL Where语句包含通过不同别名对同一个表的引用时,会显示一个错误

注意:下面的sql查询在MS Access查询设计器中运行良好

以下工作将起作用:

SELECT 
  WIZ_APPL.*,
  TRANS_PRI.Text AS LocalizedText
FROM 
  TRANSLATIONS AS TRANS_PRI,
  WIZ
WHERE 
  TRANS_PRI.Tag="prog" & WIZ_APPL.Id AND 
  TRANS_PRI.LanguageId=1 AND
  WIZ_APPL.Enabled <> 0
ORDER BY 
  WIZ_APPL.Id;
bizar的事情是创建的记录集很好,我可以打印数据。此外,表单上的控件绑定并显示数据。但是,只要调用Data1.Refresh,就会出现运行时错误。此外,refresh()可能会破坏记录集(这可能是正常行为)


更新:如果我将SQL查询作为字符串分配给Data1.RecordSource,则刷新工作正常。但是,当我将SQL查询分配给记录集时,recordset.Name只包含SQL查询的一部分。调用Refresh()后,Data1.RecordSource与Data1.RecordSet.Name相同。如果数据组件试图从缩短的记录集名称构建查询,那么它显然不起作用


这是一个已知的VB6 DAO记录集问题吗?

我不完全确定这一点,但我认为这是一个DAO记录集和数据组件错误

记录集似乎使用SQL查询来创建其name属性,但它缩短了查询。数据组件似乎使用此剪切查询来刷新其内部记录集

错误1:recordset name属性缩短了查询 Bug 2:数据组件可能使用recordset name属性从记录集中检索SQL查询,或者使用另一个属性/函数来缩短查询


变通方法或正确的使用方法;不要将SQL查询分配给内部记录集,而是使用数据组件recordsource属性

如果将双引号更改为单引号会发生什么?(围绕“prog”的两个实例)它没有任何区别。我担心这是一个DAO记录集错误。我会加上它作为答案。很有趣。谢谢你的更新。
SELECT 
  WIZ_APPL.*,
  TRANS_PRI.Text AS LocalizedText
FROM 
  TRANSLATIONS AS TRANS_PRI,
  WIZ
WHERE 
  TRANS_PRI.Tag="prog" & WIZ_APPL.Id AND 
  TRANS_PRI.LanguageId=1 AND
  WIZ_APPL.Enabled <> 0
ORDER BY 
  WIZ_APPL.Id;
SELECT
  WIZ_APPL.*,
  TRANS_PRI.Text AS LocalizedText, 
  TRANS_ALT.Text As AlternativeText
FROM 
  TRANSLATIONS AS TRANS_PRI,
  TRANSLATIONS AS TRANS_ALT, 
  WIZ_APPL
WHERE 
  TRANS_PRI.tag="prog" & WIZ_APPL.Id AND 
  TRANS_ALT.tag="prog" & WIZ_APPL.Id AND 
  TRANS_PRI.LanguageId=1 AND 
  TRANS_ALT.LanguageId=2 AND
  WIZ_APPL.Enabled <> 0
ORDER BY 
  WIZ_APPL.Id;
SELECT
  WIZ_APPL.*,
  TRANS_PRI.Text AS LocalizedText, 
  TRANS_ALT.Text As AlternativeText
FROM 
  TRANSLATIONS AS TRANS_PRI,
  TRANSLATIONS AS TRANS_ALT, 
  WIZ_APPL
INNER JOIN
  WIZ_COUNTRY_APPL ON WIZ_APPL.Id = WIZ_COUNTRY_APPL.APPL
WHERE 
  TRANS_PRI.tag="prog" & WIZ_APPL.Id AND 
  TRANS_ALT.tag="prog" & WIZ_APPL.Id AND 
  TRANS_PRI.LanguageId=1 AND 
  TRANS_ALT.LanguageId=2 AND
  WIZ_COUNTRY_APPL.Country=1
ORDER BY 
  WIZ_APPL.Id;
Set Data1.Recordset = GetData(select, from, where, order)
Do While Not Data1.Recordset.EOF
  Debug.Print Data1.Recordset!LocalizedText
  Debug.Print Data1.Recordset!AlternativeText
  Data1.Recordset.MoveNext
Loop
Data1.Refresh