我正在寻找一种方法将一些MySql表导出到MsAccess DB的其他表中(我说的是一百万条记录表......)
我想到的唯一两种方式是:
从myadmin或toad导出csv文件,然后将其导入访问数据库。
直接从Toad制作“Access Database Export”
我认为第一个更快但数据完整性不太安全,而第二个是完美的数据完整性但很慢......有人知道其他方法吗?
由于 A.
答案 0 :(得分:2)
在Web服务器上运行带有MySQL数据库的Access前端应用程序的分步指南(您不需要导入表,您可以在Web服务器上使用它们的msaccess应用程序):
如果您正在运行MsAccess,我想您正在使用Windows
取决于您的服务器,您可能在查找服务器名称或IP时遇到一些困难,请查找SSH数据库连接(或类似的东西)。例如,阅读NetSol的常见问题解答:http://www.networksolutions.com/support/how-to-back-up-the-mysql-database-using-ssh/
完成后,在MsAccess中: 1.文件 2.外部数据源 3.链接表
如果你想从MsAccess导出到MySQL,你可以在访问中创建一个FORM,在它上面放一个按钮,并在VBA中为OnClick()事件创建这个子:
Dim sTblNm As String
Dim sTypExprt As String
Dim sCnxnStr As String, vStTime As Variant
Dim db As Database, tbldef As DAO.TableDef
On Error GoTo ExportTbls_Error
sTypExprt = "ODBC Database"
sCnxnStr = "ODBC;DSN=DSNname;UID=userOnServer;PWD=pwdOnServer"
vStTime = Timer
Application.Echo False, "Visual Basic code is executing."
Set db = CurrentDb()
For Each tbldef In db.TableDefs
Debug.Print tbldef.Name
sTblNm = tbldef.Name
DoCmd.TransferDatabase acExport, sTypExprt, sCnxnStr, acTable, sTblNm, sTblNm
Next tbldef
MsgBox "Done!"
On Error GoTo 0
SmoothExit_ExportTbls:
Set db = Nothing
Application.Echo True
Exit Sub
ExportTbls_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure ExportTblsODST"
Resume SmoothExit_ExportTbls
有时,在运行非英语窗口时,您可能会收到错误2507,更改" ODBC数据库" for" ODBC" (与法语合作)。
答案 1 :(得分:1)
如果您具有对MySQL的ODBC访问权限,并且您的服务器在您的网络上,则可以从Access中导入其表。我认为菜单选项是“文件|获取外部数据|导入”。
对于“文件类型”,请选择“ODBC数据库”。您可能需要创建新的DSN名称。
我无法回想起ODBC驱动程序通常是安装默认设置,还是它们是否是单独的安装。我认为它们是默认安装的,但我可能是错的。
答案 2 :(得分:0)
感谢tony那个令人敬畏的节省时间的脚本。因为我用前缀“tbl”命名我的表,所以我修改了代码,因此它只会导出那些表(而不是奇怪的表):
Private Sub Command0_Click()
Dim sTblNm As String
Dim sTypExprt As String
Dim sCnxnStr As String, vStTime As Variant
Dim db As Database, tbldef As DAO.TableDef
Dim str As String
On Error GoTo ExportTbls_Error
sTypExprt = "ODBC Database"
sCnxnStr = "ODBC;DSN=proxmox decaoriginal;UID=matantan;PWD=majadero5"
vStTime = Timer
Application.Echo False, "Visual Basic code is executing."
str = "tbl"
Set db = CurrentDb()
For Each tbldef In db.TableDefs
Debug.Print tbldef.Name
If Left(tbldef.Name, 3) = str Then
sTblNm = tbldef.Name
DoCmd.TransferDatabase acExport, sTypExprt, sCnxnStr, acTable, sTblNm, sTblNm
Else
End If
Next tbldef
MsgBox "Done!"
On Error GoTo 0
SmoothExit_ExportTbls:
Set db = Nothing
Application.Echo True
Exit Sub
ExportTbls_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure ExportTblsODST"
Resume SmoothExit_ExportTbls
End Sub