当前位置:编程学习 > VB >>

ADO控件的一个郁闷问题,请教老鸟指点一下

ADO控件的连接字符串 是窗体启动后附的
 For Each ctl In frm.Controls
        If TypeOf ctl Is Adodc Then
            ctl.ConnectionString = MstrConn
            ctl.Tag = MsName$ & "|" & MiIndex%
            '存储控件数组信息
            If MsFiter$ <> "" Then ctl.RecordSource = ctl.RecordSource & " where " & MsFiter$
            ctl.Refresh
        End If
    Next

代码一直没有问题现在 郁闷在 ADO控件加载的比窗体加载的早,启动时 会提示 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 
然后调用我的代码赋值字符串 然后正常显示


可以看出ADO控件在窗体启动事件前就已经加载了, 咋办呢,

ConnectionString  赋值....  我总不能连接个空库让ADO控件不报错?

我如何屏蔽掉这个提示 忘有经验的指点一下 谢谢 --------------------编程问答-------------------- 你能不能把这个放到form active sub里面? --------------------编程问答-------------------- 不是那个原因, 是 ADO控件初始化 早于 窗体的任何事件 --------------------编程问答-------------------- Form_Initialize

这个事件中写入代码 --------------------编程问答-------------------- 你们可能每遇到这个情况ADO控件已经帮定了数据库, 

就是 我如何替换ADO帮定数据库的字符串,在 Form_Initialize 之前替换掉他,
就是说在ADO控件初始化的时候 我有没有办法控制他 --------------------编程问答-------------------- 不用Ado绑定不就行了吗?直接用代码写,方便、快捷。 --------------------编程问答-------------------- :'< 
控件太多...懒得一个个换... 没有人知道办法吗? --------------------编程问答-------------------- 曲线救国的方法:
1)画面把ADO的“ConnectionString”和“RecordSource”全部删除--修改为用代码连接;
2)维持控件和ADO的绑定不变;
3)加入类似以下的代码(其中的“XXX001”是你的数据库连接串):
Option Explicit

Private m_strAdoConn As String

Private m_blnInitOK     As Boolean


'' Form_Load()
Private Sub Form_Load()
    m_blnInitOK = False
    
    m_strAdoConn = "XXX001"
End Sub


'' Form_Activate()
Private Sub Form_Activate()
    If m_blnInitOK Then Exit Sub    '' Do not call it again
    
    m_blnInitOK = True
    
    Adodc1.ConnectionString = m_strAdoConn
    Adodc1.RecordSource = "T_USER"
    Adodc1.Refresh
End Sub


********************************************************************
以上代码,本人刚在计算机上调试通过,如果你需要的话可以留个邮件,发给你看看。
其实原理很简单:就是在“Form_Activate()”才进行数据库连接和设置。
******************************************************************** --------------------编程问答-------------------- CSDN把我的代码格式变了(代码应该是有TAB空格的,但被CSDN强行去掉了),自己理解一下吧!

“Adodc1.Refresh”的作用就是强行要求再次连接数据库。
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,