我用datagrid控件绑定ADO控件显示Access数据库一故障表中的数据,在表中有若干个字段(比如故障1,故障2,...故障n,日期,星期,时间),对于某一个字段(比如故障1)来说,只要满足我的检索条件(例如故障1=1,1表示发生了故障1),我就将故障1,日期,星期,时间这几个字段在datagrid控件中显示出来,将其他字段(故障2,...故障n)隐藏(DataGrid1.Columns(i).Visible = False),现在我想把所有的故障情况都显示出来,即在故障1所有出现情况显示完之后接着显示故障2所有的情况,以此类推直到所有的故障情况都列出来,但是我现在只能显示最后一种故障的情况(故障n),我的关键代码如下:
sqlstring = sqlstring & "AND 故障=1" 'sqlstring为各故障通用的select语句
DataGrid1.Columns.Add(0).Caption = "故障" '标签头
Call queryrefresh
For i = 1 To 21
DataGrid1.Columns(i).Visible = False
Next
...
sqlstring = sqlstring & "AND 故障=n" 'sqlstring为各故障通用的select语句
DataGrid1.Columns.Add(0).Caption = "故障" '标签头
Call queryrefresh
For i = 0 To n-1
DataGrid1.Columns(i).Visible = False
Next子程序queryrefresh '查找数据库中满足搜索条件的记录
Public Sub queryrefresh()
With Query
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\项目\通信程序\Database\DB_Siv.mdb;Persist Security Info=False"
.RecordSource = sqlstring
.Refresh
End With
End Sub
不知道代码有什么问题,各位大侠帮帮忙!谢谢
sqlstring = sqlstring & "AND 故障=1" 'sqlstring为各故障通用的select语句
DataGrid1.Columns.Add(0).Caption = "故障" '标签头
Call queryrefresh
For i = 1 To 21
DataGrid1.Columns(i).Visible = False
Next
...
sqlstring = sqlstring & "AND 故障=n" 'sqlstring为各故障通用的select语句
DataGrid1.Columns.Add(0).Caption = "故障" '标签头
Call queryrefresh
For i = 0 To n-1
DataGrid1.Columns(i).Visible = False
Next子程序queryrefresh '查找数据库中满足搜索条件的记录
Public Sub queryrefresh()
With Query
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\项目\通信程序\Database\DB_Siv.mdb;Persist Security Info=False"
.RecordSource = sqlstring
.Refresh
End With
End Sub
不知道代码有什么问题,各位大侠帮帮忙!谢谢
Dim db As adodb.Connection
Dim rs As adodb.Recordset
Dim a(4) As String
Dim sql1(3) As String
Dim sql2 As StringPrivate Sub Form_Load()
a(0) = "故障1"
a(1) = "故障2"
a(2) = "故障3"
End SubPrivate Sub Command3_Click()
Dim sql As String
If Check1.Value = 1 And Check2.Value = 1 And Check3.Value = 1 Then
sql2 = a(0) & "," & a(1) + "," + a(2)
ElseIf Check1.Value = 1 And Check2.Value = 1 Then
sql2 = a(0) + "," + a(1)
ElseIf Check1.Value = 1 And Check3.Value = 1 Then
sql2 = a(0) + "," + a(2)
ElseIf Check2.Value = 1 And Check3.Value = 1 Then
sql2 = a(1) + "," + a(2)
ElseIf Check1.Value = 1 Then
sql2 = a(0)
ElseIf Check2.Value = 1 Then
sql2 = a(1)
ElseIf Check3.Value = 1 Then
sql2 = a(2)
Else
sql2 = "*"
End If
sql = "select " & sql2 & " from mdlk_sj" '注意mdlk_sj改为你的数据表名,并增加你需显示的其他字段名
Text5 = sql
Set db = New adodb.Connection
Set rs = New adodb.Recordset
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\项目\通信程序\Database\DB_Siv.mdb;Persist Security Info=False"
db.Open
rs.CursorLocation = adUseClient
rs.Open sql, db, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = rs
End Sub
Dim sql As String
If Check1.Value = 1 And Check2.Value = 1 And Check3.Value = 1 Then
sql2 = a(0) & "," & a(1) + "," + a(2)
sql = "select " & sql2 & ",箱数 from mdlk_sj"
ElseIf Check1.Value = 1 And Check2.Value = 1 Then
sql2 = a(0) + "," + a(1)
sql = "select " & sql2 & ",箱数 from mdlk_sj"
ElseIf Check1.Value = 1 And Check3.Value = 1 Then
sql2 = a(0) + "," + a(2)
sql = "select " & sql2 & ",箱数 from mdlk_sj"
ElseIf Check2.Value = 1 And Check3.Value = 1 Then
sql2 = a(1) + "," + a(2)
sql = "select " & sql2 & ",箱数 from mdlk_sj"
ElseIf Check1.Value = 1 Then
sql2 = a(0)
sql = "select " & sql2 & ",箱数 from mdlk_sj"
ElseIf Check2.Value = 1 Then
sql2 = a(1)
sql = "select " & sql2 & ",箱数 from mdlk_sj"
ElseIf Check3.Value = 1 Then
sql2 = a(2)
sql = "select " & sql2 & ",箱数 from mdlk_sj"
Else
sql = "select * from mdlk_sj"
End If
Text5 = sql
Set db = New adodb.Connection
Set rs = New adodb.Recordset
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\项目\通信程序\Database\DB_Siv.mdb;Persist Security Info=False"
db.Open
rs.CursorLocation = adUseClient
rs.Open sql, db, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = rs
End Sub