不知道我是不是准确理解了你的意图,你看这样可不可以:
1。在access中建立查询,即三个表用外关键字关联起来,这个查询假设叫做Q。
(第二种情况有点搞不懂,表名不为空,直接以这个表作为数据源不就可以了吗?)
2。用ADO作为datagrid控件的数据源,当然首先要添加ADO的引用。基本的代码如下:dim cnn As New ADODB.Connection
dim rec As New ADODB.RecordsetIf cnn.State = adStateOpen Then
Else
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=..\XXX.mdb;Mode=Read|Write" 'XXX.mdb是你的数据库名称
cnn.Open
End IfIf rec.State = adStateOpen Then
rec.Close
Set rec = Nothing
End If
Query = "select * from Q where Y" 'Y是你的查询条件,如:日期=2003年2月14日
'注:如果是已知表名,就把上面的Q换成表名rec.Open Query, cnn, adOpenStatic, adLockOptimisticWith DataGrid1
Set .DataSource = rec
.Columns(0).Caption = "日期"
.Columns(1).Caption = "..."
...
.Columns(n).Caption = "..."'还可以把表中不想显示出来的字段设为不可见:
.Columns(j).Visible = False'把不希望用户改动的字段锁死:
.Columns(i).Locked = True
End With
1。在access中建立查询,即三个表用外关键字关联起来,这个查询假设叫做Q。
(第二种情况有点搞不懂,表名不为空,直接以这个表作为数据源不就可以了吗?)
2。用ADO作为datagrid控件的数据源,当然首先要添加ADO的引用。基本的代码如下:dim cnn As New ADODB.Connection
dim rec As New ADODB.RecordsetIf cnn.State = adStateOpen Then
Else
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=..\XXX.mdb;Mode=Read|Write" 'XXX.mdb是你的数据库名称
cnn.Open
End IfIf rec.State = adStateOpen Then
rec.Close
Set rec = Nothing
End If
Query = "select * from Q where Y" 'Y是你的查询条件,如:日期=2003年2月14日
'注:如果是已知表名,就把上面的Q换成表名rec.Open Query, cnn, adOpenStatic, adLockOptimisticWith DataGrid1
Set .DataSource = rec
.Columns(0).Caption = "日期"
.Columns(1).Caption = "..."
...
.Columns(n).Caption = "..."'还可以把表中不想显示出来的字段设为不可见:
.Columns(j).Visible = False'把不希望用户改动的字段锁死:
.Columns(i).Locked = True
End With
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货