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控件不报错?我如何屏蔽掉这个提示 忘有经验的指点一下 谢谢

解决方案 »

  1.   

    你能不能把这个放到form active sub里面?
      

  2.   

    不是那个原因, 是 ADO控件初始化 早于 窗体的任何事件
      

  3.   

    Form_Initialize这个事件中写入代码
      

  4.   

    你们可能每遇到这个情况ADO控件已经帮定了数据库, 就是 我如何替换ADO帮定数据库的字符串,在 Form_Initialize 之前替换掉他,
    就是说在ADO控件初始化的时候 我有没有办法控制他
      

  5.   

    不用Ado绑定不就行了吗?直接用代码写,方便、快捷。
      

  6.   

    曲线救国的方法:
    1)画面把ADO的“ConnectionString”和“RecordSource”全部删除--修改为用代码连接;
    2)维持控件和ADO的绑定不变;
    3)加入类似以下的代码(其中的“XXX001”是你的数据库连接串):
    Option ExplicitPrivate m_strAdoConn As StringPrivate 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()”才进行数据库连接和设置。
    ********************************************************************
      

  7.   

    CSDN把我的代码格式变了(代码应该是有TAB空格的,但被CSDN强行去掉了),自己理解一下吧!“Adodc1.Refresh”的作用就是强行要求再次连接数据库。