紧随其后的代码块(由stackoverflow求解器提供给我)在MS-Access中运行完美。我正在尝试将其转换为以vb.net形式访问相同的MS-Access数据库。我遇到错误,看不到我的错误。是否有任何vb.net编码器可以看到我在做什么错。第一块代码在MS-Access中有效,并且是我要转换的代码。第二段代码是我的转换尝试。
SELECT at.animalID, amt.milestoneType
FROM
animals_Table at
LEFT JOIN
(
SELECT animalID, milestoneType
FROM animalMilestones_Table
WHERE milestoneType = 'Intake'
) amt
ON at.animalID = amt.animalID
现在,我尝试进行转换:
dim selectAnimal as string
selectAnimal = "SELECT at.animalID, amt.milestoneType" & _
" FROM animals_Table at" & _
" LEFT JOIN" & _
" (" & _
" SELECT animalID, milestoneType" & _
" FROM animalMilestones_Table" & _
" WHERE milestoneType = '" & "Intake" & "'" & _
" ) amt" & _
" ON at.animalID = amt.animalID"
我得到的错误代码是!ErrorInfo.GetDescription失败,错误代码为E_FAIL(0x80004005)
看来ACE.OLEDB不喜欢at
作为表别名。试试这个
Dim selectAnimal As String
selectAnimal = "SELECT atbl.animalID, amtbl.milestoneType" & _
" FROM animals_Table atbl" & _
" LEFT JOIN" & _
" (" & _
" SELECT animalID, milestoneType" & _
" FROM animalMilestones_Table" & _
" WHERE milestoneType = '" & "Intake" & "'" & _
" ) AS amtbl" & _
" ON atbl.animalID = amtbl.animalID"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句