[已解决]MDB创建问题
本帖最后由 w60711 于 2019-10-24 15:43 编辑请问各位先进
我要建立accdb,使用以下代码
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $DBName & ";Jet Oledb:Database Password="&$mdb_data_pwd)
$newmdb.ActiveConnection.Close
都会提示 $newmdb.ActiveConnection.Close 不符合
请问要如何修改呢
感谢各位
已解决
========================
虽然是老问题了终于在刚刚找到了原因...
代碼在 10F,感謝大大的幫忙
1.首先安装 Microsoft Access Database Engine 2010 可转散发套件 x86
2.执行源码,成功。
备注:
安装第一点的x86,源码使用:#AutoIt3Wrapper_UseX64 = n
安装第一点的x64,源码使用:#AutoIt3Wrapper_UseX64 = y
十分感谢您的帮忙
例子: 示例 2
描述: 创建一个数据库文件(*. mdb)
说明: ADOX是ADODB的对象扩展库,它的对象可用于创建、修改和删除数据库。
它还包含安全对象,可用于维护用户和组,以及授予和撤销对象的权限。
这里使用的对象:Catalog 是用于创建包含描述数据源模式目录的集合。
Create 创建新的目录。“Provider= Microsoft.Jet.OLEDB.4.0”表示数据库的类型,
“DataSource=" & $mdb_data_path”数据库创建的路径与名称。
最后是结束创建。(ActiveConnection指示目录所属的 ADO Connection 对象)
#ce _______________脚本开始_________________
#AutoIt3Wrapper_UseX64 = n
$adSource = @ScriptDir & "\DB1.mdb"
$Password = "123456"
If Not FileExists($adSource) Then;如果脚本所在目录没有发现数据库文件,则创建数据库文件,
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& $adSource& ";Jet Oledb:Database Password="&$Password);创建新的目录
$newMdb.ActiveConnection.Close
MsgBox(64, "提示", "建立数据库成功", 5)
Else
MsgBox(64, "提示", "你已经建立了一个数据库了", 5)
EndIf
chzj589 发表于 2019-6-20 13:51
access2007以上的格式
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
#AutoIt3Wrapper_UseX64 = n
$adSource = @ScriptDir & "\DB1.mdb"
$Password = "123456"
$adtables = "admin"
If Not FileExists($adSource) Then;如果脚本所在目录没有发现数据库文件,则创建数据库文件,
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password);创建新的目录
$newMdb.ActiveConnection.Close
MsgBox(64, "提示", "建立数据库成功", 5)
Else
MsgBox(64, "提示", "你已经建立了一个数据库了", 5)
EndIf
本帖最后由 w60711 于 2019-6-23 18:27 编辑
chzj589 发表于 2019-6-20 19:59
access2007以上的格式
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSourc ...
感謝ˋ您~
但是它顯示以下訊息
The requested action with this object has failed.:
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
$newMdb^ ERROR
w60711 发表于 2019-6-23 18:26
感謝ˋ您~
但是它顯示以下訊息
未成功创建数据库
这一句有写上吗?
#AutoIt3Wrapper_UseX64 = n 把你创建2007ACCESS数据库的代码贴上来,我看看是什么原因 chzj589 发表于 2019-6-26 13:42
把你创建2007ACCESS数据库的代码贴上来,我看看是什么原因
>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "D:\Admin\Desktop\accdb_create.au3" /UserParams
+>18:27:37 Starting AutoIt3Wrapper v.16.612.1119.0 SciTE v.3.6.6.0 Keyboard:00000409OS:WIN_10/CPU:X64 OS:X64Environment(Language:0404)CodePage:950utf8.auto.check:4
+> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper
>Running AU3Check (3.3.14.5)from:C:\Program Files (x86)\AutoIt3input:D:\Admin\Desktop\accdb_create.au3
+>18:27:37 AU3Check ended.rc:0
>Running:(3.3.14.5):C:\Program Files (x86)\AutoIt3\autoit3.exe "D:\Admin\Desktop\accdb_create.au3"
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
"D:\Admin\Desktop\accdb_create.au3" (7) : ==> The requested action with this object has failed.:
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
$newMdb^ ERROR
->18:27:38 AutoIt3.exe ended.rc:1
+>18:27:38 AutoIt3Wrapper Finished.
>Exit code: 1 Time: 1.551
w60711 发表于 2019-6-26 18:31
$adSource =数据库名称
$Password =数据库密码
以上你都没有设定,数据库当然无法创建
#cs
>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "D:\Admin\Desktop\accdb_create.au3" /UserParams
+>18:27:37 Starting AutoIt3Wrapper v.16.612.1119.0 SciTE v.3.6.6.0 Keyboard:00000409OS:WIN_10/CPU:X64 OS:X64Environment(Language:0404)CodePage:950utf8.auto.check:4
+> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper
>Running AU3Check (3.3.14.5)from:C:\Program Files (x86)\AutoIt3input:D:\Admin\Desktop\accdb_create.au3
+>18:27:37 AU3Check ended.rc:0
>Running:(3.3.14.5):C:\Program Files (x86)\AutoIt3\autoit3.exe "D:\Admin\Desktop\accdb_create.au3"
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
"D:\Admin\Desktop\accdb_create.au3" (7) : ==> The requested action with this object has failed.:
->18:27:38 AutoIt3.exe ended.rc:1
+>18:27:38 AutoIt3Wrapper Finished.
>Exit code: 1 Time: 1.551
#ce
#AutoIt3Wrapper_UseX64 = n
$adSource = @ScriptDir & "\DB1.mdb"
$Password = "123456"
$adtables = "admin"
If Not FileExists($adSource) Then;如果脚本所在目录没有发现数据库文件,则创建数据库文件,
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
$newMdb.ActiveConnection.Close
MsgBox(64, "提示", "建立数据库成功", 1)
Else
MsgBox(64, "提示", "你已经建立了一个数据库了", 1)
EndIf
chzj589 发表于 2019-6-26 20:25
$adSource =数据库名称
$Password =数据库密码
以上你都没有设定,数据库当然无法创建
感謝您熱心解答~^^
我數據庫變數是有設定的~
代碼沒問題的話
看來可能是電腦環境的問題了...
我再來找找看原因在哪~
PS. 我是Win10 x64 教育版
AU3 3.3.14.2
本帖最后由 chzj589 于 2019-6-27 12:28 编辑
w60711 发表于 2019-6-26 22:08
感謝您熱心解答~^^
我數據庫變數是有設定的~
我刚发现是你的数据库的后缀问题:$adSource = @ScriptDir & "\DB1.mdb";DB1.accdb"
#AutoIt3Wrapper_UseX64 = n
$adSource = @ScriptDir & "\DB1.mdb";DB1.accdb"
$Password = "123456"
$adtables = "admin"
If Not FileExists($adSource) Then;如果脚本所在目录没有发现数据库文件,则创建数据库文件,
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password);创建新的目录
$newMdb.ActiveConnection.Close
$ADDTBL = ObjCreate("ADODB.Connection")
$ADDTBL.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
$ADDTBL.Execute("CREATE TABLE " & $adtables)
$ADDTBL.Close;建表
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
$addfld.Execute("ALTER TABLE " & $adtables & " ADD id identity(1, 1) primary key,namekey text(255),passkey text(255) ,ipasskey text(255),ipasskeya text(255),ipasskeyb text(255))")
$addfld.close
$namekey = "A"
$passkey = "B"
$ipasskey = "C"
$ipasskeya = "D";@YEAR & "年" & @MON & "月" & @MDAY & "日";"zxc-=iop"
$ipasskeyb = "未注册"
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
$addfld.execute("insert into " & $adtables & " (namekey,passkey,ipasskey,ipasskeya,ipasskeyb) values('" & $namekey & "','" & $passkey & "','" & $ipasskey & "','" & $ipasskeya & "','" & $ipasskeyb & "')")
$addfld.close
MsgBox(64, "提示", "建立数据库成功", 1)
Else
MsgBox(64, "提示", "你已经建立了一个数据库了", 1)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $Password)
$RS = ObjCreate("ADODB.recordset")
$RS.ActiveConnection = $addfld
$RS.open("SELECT * FROM " & $adtables)
Local $i = 0
While Not $RS.eof And Not $RS.bof
MsgBox(0, "提示", $RS.Fields(1).value & @CRLF & $RS.Fields(2).value & @CRLF & $RS.Fields(3).value & @CRLF & $RS.Fields(4).value & @CRLF & $RS.Fields(5).value, 5)
;$i += 1
$RS.movenext
WEnd
$RS.close
$addfld.Close
EndIf
学习了,谢谢 应该是系统原因 我还遇见了 所有论坛兄弟出的数据库实例 都会报这个错
>"D:\Program Files\AutoIt3\SciTE\AccAu3Wrapper\AccAu3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Desktop\ACCES操作实例.au3" /UserParams
+>20:16:37 开始 AccAu3Wrapper v.16.306.1237.0 SciTE v.3.6.2.0
------------------------------------------------------------------------------------------------------
键盘布局:00000804操作系统:WIN_10/CPU:X64 系统架构:X64 文件编码:UTF8含BOM(128) 字符集:936
SciTE目录 => D:\Program Files\AutoIt3\SciTE 用户目录 => C:\Users\Administrator\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\Administrator\AppData\Local\AutoIt v3\SciTE
------------------------------------------------------------------------------------------------------
>运行 AU3Check (3.3.14.2)从:D:\Program Files\AutoIt3
+>20:16:37 AU3Check 语法检查结束.rc:0
>运行:(3.3.14.2):D:\Program Files\AutoIt3\autoit3_x64.exe "D:\Desktop\ACCES操作实例.au3"
--> 按 Ctrl+Alt+Break 重新启动或按 Ctrl+Break 停止
"D:\Desktop\ACCES????.au3" (104) : ==> The requested action with this object has failed.:
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.12.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$newMdb^ ERROR
->20:16:39 AutoIt3.exe 结束.rc:1
+>20:16:39 AccAu3Wrapper 完成.
>Exit code: 1 Time: 2.096
这个很有用 不错支持一下 本帖最后由 chzj589 于 2019-7-6 08:54 编辑
xuanniao110 发表于 2019-6-29 20:16
应该是系统原因 我还遇见了 所有论坛兄弟出的数据库实例 都会报这个错
>"D:\Program Files\AutoIt3 ...
好象这句不对???
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.12.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.12.0; ???
应该是:
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.4.0;
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0;
$newMdb.Create("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
页:
[1]
2