关于FileOpenDialog的问题【已解决】
本帖最后由 austere 于 2014-9-13 13:48 编辑运行程序后如图,选择取消,测试程序一切正常,如果随便选择一个文件打开后,则程序测试无响应。。请教一下是什么原因造成的,求修正~~~
代码如下:#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $zhucaidan
If Not FileExists(".\123.mdb") Then
data()
EndIf
FileOpenDialog("请选择您要打开的文件", "", "任意文件 (*.*)")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 429, 193, 218, 137)
$Input1 = GUICtrlCreateInput("", 72, 80, 201, 21)
$Input2 = GUICtrlCreateInput("Input2", 72, 120, 201, 21)
$Button1 = GUICtrlCreateButton("读取内容", 304, 80, 75, 25)
$Button2 = GUICtrlCreateButton("写入内容", 304, 120, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
MsgBox(0,0,$zhucaidan)
du()
GUICtrlSetData($Input1, $zhucaidan)
Case $Button2
$xieru = GUICtrlRead($Input2)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=123.mdb")
$addfld.execute("updateignorant setzhucaidan='" & $xieru & "' WHERE id = 1")
$addfld.close
MsgBox(4096, " 提示: ", @CRLF & " 写入成功!!! ")
EndSwitch
WEnd
Func du()
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=123.mdb")
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open("Select * From ignorant where id = 1")
$zhucaidan = $RS.Fields(1).value
$RS.close
$addfld.Close
EndFunc ;==>du
Func data()
If Not FileExists("123.mdb") Then
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=123.mdb")
$newMdb.ActiveConnection.Close;建数据库
$addtbl = ObjCreate("ADODB.Connection")
$addtbl.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=123.mdb")
$addtbl.Execute("CREATE TABLE ignorant")
$addtbl.Close;建表
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=123.mdb")
$addfld.Execute("ALTER TABLE ignorant ADD id identity(1, 1) primary key ,zhucaidan text ")
$addfld.Execute("insert into ignorant (zhucaidan) values('123')")
$addfld.Close;建列表名
; MsgBox(64, " 提示:", @CRLF & "建立数据库成功", 5)
Else
MsgBox(64, " 提示:", @CRLF & "你已经建立了一个数据库了....", 5)
EndIf
EndFunc ;==>data 我测试没有什么异常啊 回复 2# h20040606
你是xp? 选择打开文件啦嘛? 刚刚用XP测试了一下,XP下没有问题~有WIN 7的朋友吗? 帮测试一下,我WIN 7下不行~~ 第10句FileOpenDialog返回值是选中文件的完整路径。楼主,你都没把返回值赋给某个变量,程序之后都没有、也不能使用到这个选择的值了。所以不管程序有无问题,有什么问题都跟FileOpenDialog没任何关系。 回复 5# shqf
声明变量和不声明没啥关系吧?我不赋值也不影响程序啊...... 关键是我点了取消,就使用正常,随便选择了文件就测试失败了~~ XP下我测试了,正常..... win7 下不行~ $addfld.OPEN("provider=Microsoft.Jet.OLEDB.4.0;Data Source=123.mdb") 回复 7# wggaijcm
不明白您的意思,你的意思是这个open和文件浏览打开那个冲突了吗? 刚测试了下代码没问题的 WIN7 正常使用 你编译的什么版本的?
本帖最后由 shqf 于 2014-9-12 15:33 编辑
回复 6# austere
你问题是“关于FileOpenDialog的问题”,可程序中第10句有或没有,程序结果完全一模一样,总之程序与第10句没有任何关系。如果程序有问题的话是其他语句。 回复 10# shqf
不一样的,我的加上了第10句之后,随便选择一个文件运行,然后在win 7 下测试读取和写入数据,均没有响应..... 但是在XP下测试又正常......
win 7下 只有注释掉第10句,或者运行打开文件的时候,选择取消,测试正常... 如果随便选择一个文件,则测试失败~~ 回复 9# wggaijcm
你用的什么版本,我用的3.3.11.3 回复 9# wggaijcm
感谢测试,我找朋友测试了下,应该是我电脑的问题~~结贴~ 回复 10# shqf
找人测试了下,代码没有问题,应该是我电脑的问题~~..结贴了~
页:
[1]