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控件不报错?我如何屏蔽掉这个提示 忘有经验的指点一下 谢谢
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控件不报错?我如何屏蔽掉这个提示 忘有经验的指点一下 谢谢
就是说在ADO控件初始化的时候 我有没有办法控制他
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()”才进行数据库连接和设置。
********************************************************************