如何解析a&quort在Access Module中的MySQL连接字符串中找不到可安装的ISAM错误

发布于 2025-01-24 03:10:02 字数 2399 浏览 6 评论 0原文

Access 365/Windows 10

我会收到“无法找到可安装的ISAM”错误,我认为这意味着我的连接字符串有问题。

我进行了右键单击,将单个访问表导出到MySQL后端,以便可以将其链接并验证该连接的驱动程序,服务器,端口,数据库等。一切看起来都不错。你能看到我做错了什么吗?

我有128个表可以迁移到MySQL,并且正在寻找一个有效的,可重复的过程。我对此代码寄予厚望...

''

Public Function fncExportTables() As Boolean

  'Declare Variables...
    Dim strCnn As String
    Dim rs As Recordset
    Dim db As Database
    Dim strTp As String
    Dim strOriginal As String

  'The Connection String required to connect to MySQL. 
'I THINK THIS IS THE PROBLEM
   strCnn = "DRIVER={MySQL ODBC 8.0 Driver};" & _
                "SERVER=myServer;" & _
                "PORT=24299;" & _
                "DATABASE=myDb;" & _
                "USER=myUserName;" & _
                "PASSWORD=myPassword;" & _
                "OPTION=3;"
                                 
    strTp = "ODBC Database"

  'Trap any Errors...
  On Error GoTo Error_fncExportTables
 
  'Open a recordset from the table the conatains
  'all the table names we want to Link from the
  'MySQL Database.
  Set db = CurrentDb
  Set rs = db.OpenRecordset("qselMgr", dbOpenSnapshot)
  With rs
      'Fill the Recordset...
      .MoveLast
      .MoveFirst
      'Enumerate through the Records...
      Do Until rs.EOF
        'Place the Table Name into the str string variable.
        ' FieldName (below) would be the Field name in your Access
        ' Table which holds the name of the MySQL Tables to Link.
        strOriginal = !strOriginalName
        'Make sure we are not dealing will an empty string..
        If Len(strOriginal) > 0 Then
            'Link the MySQL Table to this Database. 
'ERROR TRIGGERS ON THE LINE BELOW
            DoCmd.TransferDatabase acExport, strTp, strCnn, _
                  acTable, strOriginal, strOriginal
        End If
        'move to the next record...
        .MoveNext
      Loop
  End With
  'We're done...
 
Exit_fncExportTables:
  'Clear Variables and close the db connection.
  Set rs = Nothing
  If Not db Is Nothing Then db.Close
  Set db = Nothing
  Exit Function
 
Error_fncExportTables:
  'If there was an error then display the Error Msg.
  MsgBox "Export Table Error:" & vbCr & vbCr & _
          Err.Number & "  -  " & Err.Description, _
          vbExclamation, "Export Table Error"
  Err.Clear
  Resume Exit_fncExportTables
End Function

'''

Access 365/Windows 10

I’m getting the “Could not find installable ISAM” error which I believe means I’ve a problem with my connection string below.

I did a right click, export on a single Access table to the MySQL backend so that I could link it and verify the driver, server, port, database, etc. of that connection against the connection string in the function below. It all looks good. Can you see what I've done wrong?

I have 128 tables to migrate to MySQL and am looking for a efficient, repeatable process; I had high hopes for this code...

'''

Public Function fncExportTables() As Boolean

  'Declare Variables...
    Dim strCnn As String
    Dim rs As Recordset
    Dim db As Database
    Dim strTp As String
    Dim strOriginal As String

  'The Connection String required to connect to MySQL. 
'I THINK THIS IS THE PROBLEM
   strCnn = "DRIVER={MySQL ODBC 8.0 Driver};" & _
                "SERVER=myServer;" & _
                "PORT=24299;" & _
                "DATABASE=myDb;" & _
                "USER=myUserName;" & _
                "PASSWORD=myPassword;" & _
                "OPTION=3;"
                                 
    strTp = "ODBC Database"

  'Trap any Errors...
  On Error GoTo Error_fncExportTables
 
  'Open a recordset from the table the conatains
  'all the table names we want to Link from the
  'MySQL Database.
  Set db = CurrentDb
  Set rs = db.OpenRecordset("qselMgr", dbOpenSnapshot)
  With rs
      'Fill the Recordset...
      .MoveLast
      .MoveFirst
      'Enumerate through the Records...
      Do Until rs.EOF
        'Place the Table Name into the str string variable.
        ' FieldName (below) would be the Field name in your Access
        ' Table which holds the name of the MySQL Tables to Link.
        strOriginal = !strOriginalName
        'Make sure we are not dealing will an empty string..
        If Len(strOriginal) > 0 Then
            'Link the MySQL Table to this Database. 
'ERROR TRIGGERS ON THE LINE BELOW
            DoCmd.TransferDatabase acExport, strTp, strCnn, _
                  acTable, strOriginal, strOriginal
        End If
        'move to the next record...
        .MoveNext
      Loop
  End With
  'We're done...
 
Exit_fncExportTables:
  'Clear Variables and close the db connection.
  Set rs = Nothing
  If Not db Is Nothing Then db.Close
  Set db = Nothing
  Exit Function
 
Error_fncExportTables:
  'If there was an error then display the Error Msg.
  MsgBox "Export Table Error:" & vbCr & vbCr & _
          Err.Number & "  -  " & Err.Description, _
          vbExclamation, "Export Table Error"
  Err.Clear
  Resume Exit_fncExportTables
End Function

'''

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文