我用ADODC 控件处理数据库(用向导的代码)本来一切正常
ADODC1.ConnectionString为
PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Microsoft Visual Studio\MyProjects\record\record.mdb;后来我改了一下
Public ConnString as String
ConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="+app.path+"\record.mdb;"然后把 ADODC1.ConnectionString清空
并且在主窗体打开前,在主模块中执行
frmBrowse.ADODC1.ConnectionString= ConnString但是在执行这一句时出错
[Microsoft][ODBC 驱动程序 管理器]未发现数据源名称并且未指定默认驱动程序这是怎么回事?
我在MSDN 中找不到答案
谁能指点一下,谢谢
ADODC1.ConnectionString为
PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Microsoft Visual Studio\MyProjects\record\record.mdb;后来我改了一下
Public ConnString as String
ConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="+app.path+"\record.mdb;"然后把 ADODC1.ConnectionString清空
并且在主窗体打开前,在主模块中执行
frmBrowse.ADODC1.ConnectionString= ConnString但是在执行这一句时出错
[Microsoft][ODBC 驱动程序 管理器]未发现数据源名称并且未指定默认驱动程序这是怎么回事?
我在MSDN 中找不到答案
谁能指点一下,谢谢
从代码没修改前起就一直是这样我定义的ConnString变量前面加了啊
上面的语句是CSDN自动换行的
本来应该是
ConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data _
Source="+app.path+"\record.mdb;"
Dim Cnn As New ADODB.Connection
Cnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\文件名.mdb;Persist Security Info=False"
但我的ADODC控件是已经放在窗体上的
这样 可能要 有很多修改
ConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data _
Source="+app.path+"\record.mdb;"
只是指定了数据库名,并没有指定数据库的具体表名呀
再加这两名就可以了
frmBrowse.ADODC1.commandtype=2
frmBrowse.ADODC1.recordsource="表名"
frmBrowse.ADODC1.refresh
LOAD的时候会自动检测的,又因为事件是发生在你的语句指定路径之前,所以会出错。
解决办法:
将ADODC清空。
用语句将表名等信息加上。
清空了之后只要一refresh
就会出错:
连接被拒,所需的新连接和一个已被使用的连接的特性不一致
工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)Option ExplicitDim WithEvents adoRS As Recordset
Dim db As Connection
'提数据事件
Set db = New Connection
db.CursorLocation = adUseClient
db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"
' ##########################################
'打开密码是1234的Access2000数据库db1.mdb
'不需要密码,就把Jet OLEDB:Database Password=1234;这段去掉 Set adoRS = New Recordset
adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
'赋值给 DataGrid 表
Set DataGrid1.DataSource = adoRS
'表刷新
DataGrid1.Refresh
'添加事件和保存
adoRS.AddNew
'保存
adoRS![字段a] = text1.Text
adoRS![字段b] = text2.Text
adoRS.UpdateBatch adAffectAll'删除
adoRS.Delete
'重新赋值给表
adoRS.Requery
Set DataGrid1.DataSource = adoRS
DataGrid1.Refresh '其他相关操作:
'上一条
If Not adoRS.BOF Then adoRS.MovePrevious
If adoRS.BOF And adoRS.RecordCount > 0 Then
'已到最后返回
adoRS.MoveFirst
End If
'下一条
If Not adoRS.EOF Then adoRS.MoveNext '下一条
If adoRS.EOF And adoRS.RecordCount > 0 Then
'已到最后返回
adoRS.MoveLast
End If
'第一条
If Not adoRS.BOF Then adoRS.MoveFirst
'最末
If Not adoRS.EOF Then adoRS.MoveLast
Adodc1.RecordSource = "select * from 表名"
Adodc1.Refresh
Public adoDataConn As ADODB.Connection
Public adoDataCmd As ADODB.Command
Public adoDataRS As ADODB.Recordset
Set adoDataConn = New ADODB.Connection
Set adoDataCmd = New ADODB.Command
Set adoDataRS = New ADODB.Recordset
ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\record.mdb;Persist Security Info=False" adoDataConn.ConnectionString = ConnString
adoDataConn.Open
'Set adoDataCmd.ActiveConnection = adoDataConn
adoDataCmd.CommandType = adCmdUnknown
adoDataCmd.CommandTimeout = 20
adoDataCmd.CommandText = "select * from 电教片数据"
adoDataRS.Open "select * from 电教片数据", adoDataConn
然后在另一个窗口中放一个DataGridPrivate Sub Form_Load()
dbgrdBrowse.DataSource = adoDataRS
' 上句出错:未找到方法或成员
' 改成 set dbgrdBrowse.DataSource = adoDataRS
' 也出错:行集合不能作为标签
End Sub我只是想,在主模块中定义数据对象,在所有的窗体中共用
还有其他好的办法吗帖子再加分
ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\record.mdb;Persist Security Info=False"修改如下试试“
ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\record.mdb;Persist Security Info=False" & """我感觉可能是你的连接字符串有问题,如果不换行,不用变量本来应该是ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Microsoft Visual Studio\MyProjects\record\record.mdb;Persist Security Info=False" 你现在用了变量而最后却少了一个"""
Public adoDataConn As ADODB.Connection
Public adoDataCmd As ADODB.Command
Public adoDataRS As ADODB.Recordset
Set adoDataConn = New ADODB.Connection
Set adoDataCmd = New ADODB.Command
Set adoDataRS = New ADODB.Recordset
adoDataRS.cursorlocaton=aduseclient''''要加上这句
ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\record.mdb;Persist Security Info=False" adoDataConn.ConnectionString = ConnString
adoDataConn.Open
'Set adoDataCmd.ActiveConnection = adoDataConn
adoDataCmd.CommandType = adCmdUnknown
adoDataCmd.CommandTimeout = 20
adoDataCmd.CommandText = "select * from 电教片数据"
adoDataRS.Open "select * from 电教片数据", adoDataConn
然后在另一个窗口中放一个DataGridPrivate Sub Form_Load()
set dbgrdBrowse.DataSource = adoDataRS
End Sub
关键在于你的ADODC的属性ConnectString中应该是空,不然会出错。可以把窗体上控件删掉,
在窗体上再放一个,ConnectString值完全由代码实现。