冰冻三尺 之“使用ADO访问数据源”

来源:互联网 发布:深圳中学学位房 知乎 编辑:程序博客网 时间:2024/04/19 15:54

         

                       冰冻三尺之“使用ADO访问数据源”

  

    总是说发现问题的时候就是进步到时候,这个时候自己总是想自己已经进步很多了吧,因为总是问题不断,感觉做什么都很不顺利,阿门,进步的时候又到了。

          做第二个例子上来问题就来了,利用ODBC访问数据库,可是在创建ODBC数据库源的时候,没找到microsoft access driver 。当时就愣了,这也出问题啊,不过万幸,经过努力也算是解决了。        


       这个问题出现的原因是我的电脑按照的操作系统是64位,而安装的office32位,出现不兼容情况,没有找到  microsoft  access   driver  经过一番查询找到了解决方案:就是通过C:/Windows/SysWOW64/odbcad32.exe启动32位版本ODBC管理工具便可以解决。

 


       事情虽小,解决方式也简单。可是这其中也有艰辛,其中最最值得注意的我觉得就是心态问题,这两天折腾数据库,不是这出问题就是那出问题,弄的心里总是很烦躁,其实仔细想想也没必要,事实证明办法总比问题多,细心耐心的去寻求办法,就没有过不去的槛儿。希望自己以后端正态度,因为这也是一个不可多得的学习进步的机会,下面就来展示下我的劳动成果。

        总体来说例子很简单也很容易懂,稍微麻烦点的也就是数据库的连接,此次采用的是ADO访问ODBC数据源,过程就是ODBC连接到了数据源,然后ADO通过ODBC访问数据库。

 

Dim objCnAs ConnectionDim objSeAs RecordsetDimisNeedSave 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.RecordCountEnd SubPrivateSub cmdPre_Click()   DoSave   objSe.MovePrevious   If objSe.BOF Then objSe.MoveLast   txtUserName =objSe.Fields("用户名").Value   txtPassword =objSe.Fields("口令").Value   txtMsg = objSe.AbsolutePosition &"\" & objSe.RecordCountEnd SubPrivateSub 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.RecordCountEnd SubPrivateSub DoSave()   If isNeedSave Then      objSe.Fields("用户名").Value =txtUserName      objSe.Fields("口令").Value =txtPassword      objSe.Update    End IfEnd SubPrivateSub Form_Unload(Cancel As Integer)   Set objSe = Nothing   objCn.Close     Set objCn = Nothing  End Sub PrivateSub txtPassword_Change()   isNeedSave = TrueEnd Sub PrivateSub txtUserName_Change()   isNeedSave = TrueEnd Sub
         当然这些代码几乎都是书上的,不过也做了一点细微的改动,那就是 cmdPre_Click事件和cmdNext_Click事件中的objSe.MoveLast objSe.MoveFirst调换位置的话,那么就能够实现循环浏览(当浏览到最后或者最前边的时候会跳到最前边或者最后边)。虽然简单到有点弱的地步,毕竟是自己亲自改的,也能够实现自己想要的功能。这就是进步吧。

   点点滴滴的积累期待着巨大的变化。

原创粉丝点击