可以的,例子有,是用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
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
如果单机运行,那个引用的dll是不是每个机器上都有?谢谢
"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