当然不用ODBC数据源,你可以在VB中找到一个叫ADODC的控件,用它可以得到很直接的连接字符串!
解决方案 »
- GB18030实现工具
- 远程访问SQL SERVER数据库
- 各位同仁,小弟做小东东用data Report报表,打包运行出怪错找不着法子。请高手指点。
- 烦了我很久了的水晶报表问题,唉,谁能帮我解决哦
- 请问我如何在上一次的搜索结果集RecordSet中再次搜索?
- 急问!!!ActiveReport怎么用自定义纸张如(28CM*12CM)
- 急。怎么获得拨号用户的上网帐号
- 有没有获取任意一幅图片某个点的r,g,b颜色值的工具?
- 安装时,注册文件\'C:\\WINNT\\SYSTEM32\\MSADO25.TLB\'时出错
- TTS引擎中如何控制男声发音还是女声发音(无正文)。。。。。。。
- API函数mscisendstring的问题?
- 如何判断一个字符串中存在中文字符?
ODBC Driver for AccessstrConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=c:\\DatabasePath\\dbaccess.mdb;Uid=;Pwd=;"); If you are using a Workgroup (System database):
You need to inform the SystemDB Path, the User Name and its password.
For that You have Two solutions: Inform the user and password in the conecction string or in the moment of the open operation.
For Example: strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
"SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;"
"Uid=Carlos Antollini;Pwd=carlos"); or may be strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
"SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;");
if(pDB.Open(strConnection, "DatabaseUser", "DatabasePass"))
{
DoSomething();
pDB.Close();
}If you want to open in Exclusive mode:strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=c:\\DatabasePath\dbaccess.mdb;Exclusive=1;");
如果你是用的是access2000做的数据库 并设置了访问密码:
只许在password="密码" 即可
我觉得用DATAENVIRONMENT很好,不用定义connection、recordset和connectionstring,代码看起来很干净。
Public cnn As ADODB.Connection
Public fMainForm As frmMain
Public UserName As String
Sub Main()
Dim fLogin As New frmLogin
fLogin.Show vbModal
'显示登陆窗体
'判断是否授权用户
If Not fLogin.OK Then
'Login Failed so exit app
End
End If
Unload fLogin '判断是否进入系统
Set fMainForm = New frmMain
fMainForm.Show
End Sub
Public Function ConnectString() _
As String
'返回一个数据库连接
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Password ="";Data Source=C:\stu1.mdb;Persist Security Info=True"
End Function
Public Function ExecuteSQL(ByVal SQL _
As String, MsgString As String) _
As ADODB.Recordset
'传递参数SQL传递查询语句,MsgString传递查询信息
Dim cnn As ADODB.Connection
'定义连接
Dim rst As ADODB.Recordset
'定义字符串
Dim sTokens() As String
'错误处理
On Error GoTo ExecuteSQL_Error
'用split函数产生一个包含各个子串的数组
sTokens = Split(SQL)
'创建连接
Set cnn = New ADODB.Connection
cnn.Open ConnectString
'判断字符串中是否含有指定内容
If InStr("INSERT,DELETE,UPDATE", _
UCase$(sTokens(0))) Then
'执行查询语句
cnn.Execute SQL
MsgString = sTokens(0) & _
" query successful"
Else
'创建数据集对象
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, _
adOpenKeyset, _
adLockOptimistic
'rst.MoveLast 'get RecordCount
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
ExecuteSQL_Exit:
'清空数据对象
Set rst = Nothing
Set cnn = Nothing
Exit Function
'错误类型判断
ExecuteSQL_Error:
MsgString = "查询错误: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function请高手赐教!请麻烦说清楚点!我很菜的!谢谢!!!!
UCase$(sTokens(0))) Then你的Instr函数使用错误,改成:
if InStr("INSERT",UCase$(sTokens(0))) or InStr("DELETE",UCase$(sTokens(0))) or InStr("UPDATE",UCase$(sTokens(0))) then
而不是简单的Set cnn = Nothing
只是这个函数不一样!
Public Function ConnectString() _
As String
'返回一个数据库连接
ConnectString = "PROVIDER=SQLOLEDB.6;Persist Security Info=True;User ID=sa;Password=8122;Initial Catalog=Student;Data Source=TIANYE;Connect Timeout=15"
End Function
现在我想连接一个access2000的mdb文件,里面的表的内容和sql server里的
都完全一样!我的mdb文件也没有设密码!请问高手要怎么样改这个函数呢!?我把它改成:
Public Function ConnectString() _
As String
'返回一个数据库连接
ConnectString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\stu1.mdb"
End Function
还是不行!请问是不是还要加些什么东西!谢谢!请赐教!!!!!
还是先连好了数据库再写好些
你要先应用ADO对象,然后在作其他的事情
conn.connectionstring="provider=microsoft.jet.oledb.4.0 data source="+datapath
dtapath是你的数据库的路径,没有密码的就是这样
在用
dim sql_cn as string
Dim cn As ADODB.Connection
sql_cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=路径;Persist Security Info=False"
Set cn = New ADODB.Connection
cn.Open sql_cn
应该没有任何问题吧