大家有没有vb中用sql直接操作mdb的例子,或者这方面的电子书?谢谢。

解决方案 »

  1.   

    可以的,例子有,是用ADO的对象来做的.例子:
    1.用Access做后台数据库,在局域网内访问数据库中的内容的示例:你首先要在VB菜单中:“工程”-->“引用”-->“Microsoft AxtiveX Data Objects 2.X Library”注:2.X为版本号,如果你机子上有高版本的就用高版本的,如:2.5或2.6的。  "工程"-->“部件”-->“MicroSoft DataGrid Control 6.0”示例:Private Sub ComOK_Click()   Dim SQLstr As String,cnstr AS String  Dim cn AS New ADODB.Connection'连接对象   Dim rs As New ADODB.Recordset'记录集对象   cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=\\myServer\c:\inetpub\wwwroot\yourdb.mdb" '连接字符串   cn.open' 打开数据库连接   rs.CursorLocation =adUseClient   sqlstr="slect * from XXX表"   rs.open sqlstr,cn,3,3'执行SQL语句,并返回记录   set datagrid1.datasource=rs   datagrid1.refresh   rs.close'关闭记录集对象   set rs=nothingEnd Sub本示例是将数据库中的一张表的记录显示在datagrid的控件中。注:myserver为服务器名可以为IP地址。2. 复杂的组合查询:
    在VB里用一个集合来把运算符放到一起,例如:
    private function makesqlstr() as string
    Dim A As Collection, B As CollectionDim SQL As StringSet A = New CollectionSet B = New CollectionA.Add "id"A.Add "name"A.Add "idcard"A.Add "works"A.Add "tel"A.Add "cash"B.Add "="B.Add ">"B.Add "<"B.Add "like"If cobObj.ListIndex = 0 Or cobObj.ListIndex = 5 ThenSQL = "select id,name,dot,createdate,idcard,works,tel,cash,(select count(a.cardid) from consume as a where a.cardid=b.id) from card as b where " _      & "" & A(cobObj.ListIndex + 1) & " " & B(cobOpr.ListIndex + 1) & " " & txtValue.TextElse  If cobOpr.ListIndex = 3 Then    SQL = "select id,name,dot,createdate,idcard,works,tel,cash,(select count(a.cardid) from consume as a where a.cardid=b.id) from card as b where " _      & "" & A(cobObj.ListIndex + 1) & " " & B(cobOpr.ListIndex + 1) & "'%" & txtValue.Text & "%'"  Else    SQL = "select id,name,dot,createdate,idcard,works,tel,cash,(select count(a.cardid) from consume as a where a.cardid=b.id) from card as b where " _      & "" & A(cobObj.ListIndex + 1) & " " & B(cobOpr.ListIndex + 1) & "'" & txtValue.Text & "'"  End IfEnd If
    makesqlstr=SQL
    end functionprivate sub command1_click()
     dim rs as new adodb.recordset
     rs.open makesqlstr'执行SQL语句
     set datagrid1=rs'显示记录集
    end sub
      

  2.   

    哦vb中sql不能直接操作mdb,还要借助ado吗?:)(虽然已经知道,还是不死心)三者各自的作用是什么?如果是c/s结构,服务器和client该如何安装?
    如果单机运行,那个引用的dll是不是每个机器上都有?谢谢
      

  3.   

    例子运行中断,提示"odbc 驱动程序管理器 未发现数据源名称并且未指定默认驱动程序"一个comok,一个datagird1,引用ActiveX data objects 2.5Dim SQLstr As String, cnstr As String   Dim cn As New ADODB.Connection '连接对象   Dim rs As New ADODB.Recordset '记录集对象   cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
       "Data Source=test.mdb" '连接字符串,//text.mdb,有food表   cn.Open ' 打开数据库连接   rs.CursorLocation = adUseClient   SQLstr = "select * from food"   rs.Open SQLstr, cn, 3, 3 '执行SQL语句,并返回记录   Set DataGrid1.DataSource = rs   DataGrid1.Refresh   rs.Close '关闭记录集对象   Set rs = Nothing