冰冻三尺之“使用ADO访问数据源”
总是说发现问题的时候就是进步到时候,这个时候自己总是想自己已经进步很多了吧,因为总是问题不断,感觉做什么都很不顺利,阿门,进步的时候又到了。
做第二个例子上来问题就来了,利用ODBC访问数据库,可是在创建ODBC数据库源的时候,没找到microsoft access driver 。当时就愣了,这也出问题啊,不过万幸,经过努力也算是解决了。
这个问题出现的原因是我的电脑按照的操作系统是64位,而安装的office是32位,出现不兼容情况,没有找到microsoft access driver 。经过一番查询找到了解决方案:就是通过C:/Windows/SysWOW64/odbcad32.exe启动32位版本ODBC管理工具便可以解决。
事情虽小,解决方式也简单。可是这其中也有艰辛,其中最最值得注意的我觉得就是心态问题,这两天折腾数据库,不是这出问题就是那出问题,弄的心里总是很烦躁,其实仔细想想也没必要,事实证明办法总比问题多,细心耐心的去寻求办法,就没有过不去的槛儿。希望自己以后端正态度,因为这也是一个不可多得的学习进步的机会,下面就来展示下我的劳动成果。
总体来说例子很简单也很容易懂,稍微麻烦点的也就是数据库的连接,此次采用的是ADO访问ODBC数据源,过程就是ODBC连接到了数据源,然后ADO通过ODBC访问数据库。
Dim objCnAs Connection
Dim objSeAs Recordset
DimisNeedSave As Boolean
PrivateSub cmdNext_Click()
DoSave
objSe.MoveNext
If objSe.EOF Then objSe.MoveFirst
txtUserName =objSe.Fields("用户名").Value
txtPassword =objSe.Fields("口令").Value
txtMsg = objSe.AbsolutePosition &"\" & objSe.RecordCount
End Sub
PrivateSub cmdPre_Click()
DoSave
objSe.MovePrevious
If objSe.BOF Then objSe.MoveLast
txtUserName =objSe.Fields("用户名").Value
txtPassword =objSe.Fields("口令").Value
txtMsg = objSe.AbsolutePosition &"\" & objSe.RecordCount
End Sub
PrivateSub Form_Load()
Set objCn = New Connection
objCn.Open "DSN=实例2DSN"
Set objSe = New Recordset
With objSe
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open "select * from 系统用户 ",objCn
End With
txtUserName.Text =objSe.Fields("用户名").Value
txtPassword.Text =objSe.Fields("口令").Value
txtMsg = objSe.AbsolutePosition &"/" & objSe.RecordCount
End Sub
PrivateSub DoSave()
If isNeedSave Then
objSe.Fields("用户名").Value =txtUserName
objSe.Fields("口令").Value =txtPassword
objSe.Update
End If
End Sub
PrivateSub Form_Unload(Cancel As Integer)
Set objSe = Nothing
objCn.Close
Set objCn = Nothing
End Sub
PrivateSub txtPassword_Change()
isNeedSave = True
End Sub
PrivateSub txtUserName_Change()
isNeedSave = True
End Sub
当然这些代码几乎都是书上的,不过也做了一点细微的改动,那就是
cmdPre_Click
事件和
cmdNext_Click
事件中的
objSe.MoveLast
和
objSe.MoveFirst
调换位置的话,那么就能够实现循环浏览(当浏览到最后或者最前边的时候会跳到最前边或者最后边)。虽然简单到有点弱的地步,毕竟是自己亲自改的,也能够实现自己想要的功能。这就是进步吧。
点点滴滴的积累期待着巨大的变化。