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

冰冻三尺之“使用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 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 调换位置的话,那么就能够实现循环浏览(当浏览到最后或者最前边的时候会跳到最前边或者最后边)。虽然简单到有点弱的地步,毕竟是自己亲自改的,也能够实现自己想要的功能。这就是进步吧。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值