5735988 发表于 2014-3-3 18:35:10

读取ACCESS 老是错误,翻译了一下,还是不明白

本帖最后由 5735988 于 2014-3-3 18:38 编辑

Func _accessListTables($adSource)
   Local $oList = ''
   $oADO = 'ADODB.Connection'
   If IsObj($oADO) Then
      $oADO = ObjGet('',$oADO)
   Else
      $oADO = _dbOpen($adSource)
   EndIf
   If IsObj($oADO) = 0 Then Return SetError(1)
   $oRec = $oADO.OpenSchema($adSchemaTables)
   While NOT $oRec.EOF
;~       If StringLen( $oRec("TABLE_TYPE").value) > 5 Then;; Skip the hidden internal tables
;~          $oRec.movenext
;~          ContinueLoop
;~       EndIf
      $oList = $oList & $oRec("TABLE_NAME").value & '|'
      $oRec.movenext
   Wend
   If $oList <> '' Then
      $oADO.close
      Return '|' & StringTrimRight($oList,1)
   Else
      SetError(3, 0, 0)
      $oADO.close
      Return $oList
   EndIf
EndFunc    ;<===> _accessListTables()


上面这段是 ACCESS.AU3里面的文本.

---------------------------显示的错误

-"C:\autoit3\Include\Access.au3" (471) : ==> ????? "With" ????.:
If StringLen( $oRec("TABLE_TYPE").value) > 5 Then
If StringLen( $oRec("TABLE_TYPE")^ ERROR
->18:37:21 AutoIT3.exe 完成::1



这段应该是如果字段大于5就隐藏字段名,是这个意思吗?         删除掉,就出现了很多的隐藏字符。。


删除掉下面这段,还是不能正常使用。。。。
;~       If StringLen( $oRec("TABLE_TYPE").value) > 5 Then;; Skip the hidden internal tables
;~          $oRec.movenext
;~          ContinueLoop
;~       EndIf

user3000 发表于 2014-3-4 18:06:23

回复 1# 5735988


    贴出的函数是获取特定数据库文件中的所有表格的名称。但不包括所有的隐藏的内置表。
并非是操作字段名。
出现此错误,个人估计是文件数据不符合ACCESS标准,或者是ACCESS系统已被破坏,需要重新安装。
页: [1]
查看完整版本: 读取ACCESS 老是错误,翻译了一下,还是不明白