开发平台:VB6+SP5
数据库:ACCESS2000
源码部份如下:
if rsUser.State<>0 then rsUser.Close
rsUser.Open ("SELECT [025A].*,[025B].* FROM [025A],[025B]") ' WHERE [025A].ID=[025B].ID")
With MSFlexGrid1
.Rows = 2
.Cols = 22
.TextMatrix(1, 0) = "处理号"
.TextMatrix(1, 1) = "发报社号"
.TextMatrix(1, 2) = "发报社名"
.TextMatrix(1, 3) = "收报社号"
.TextMatrix(1, 4) = "收报社名"
.TextMatrix(1, 5) = "金额"
.TextMatrix(1, 6) = "收款社名称"
.TextMatrix(1, 7) = "付款单位名称"
.TextMatrix(1, 8) = "收款单位账号"
.TextMatrix(1, 9) = "编报日期"
.TextMatrix(1, 10) = "状态值"
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025A.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025A.FaBaoSheHao") '发报社号
....................................其它同样处理的重复语句省略!
rsUser.MoveNext
Loop
Do While Not rsUser.EOF
.TextMatrix(.Rows - 1, 11) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 12) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
..................................其它同样处理的重复语句省略!
rsUser.MoveNext
Loop
End With
目的:是想通过MSFlexGrid1控件先显示[025A]表中的数据,然后再显示出[025B]表中的数据。可是程序一执行MSFlexGrid1控件只显示[025A]表中的内容,而不显示[025B]表中的内容,只是显示的行数增加了如[025A]表中本来有5条记录,那么MSFlexGrid1控件显示出10条记录来。不过都是[025A]表中的内容只是数据被重复显示了。
请问我的问题出在什么地方?
8 个解决方案
#1
做两次查询,向msflexgrid写两次数据那?
#2
wangintel(cedbak) ( ) 信誉:100
做两次查询,向msflexgrid写两次数据那?
====如果这样得话上一次查询的调用,会被最近一次的调用所取代。
做两次查询,向msflexgrid写两次数据那?
====如果这样得话上一次查询的调用,会被最近一次的调用所取代。
#3
是不是rsuser的数据光标不对?是前滚类型
这样你数据指针往后滚后不能再往前滚。所以不能再返回来显示
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
这样你数据指针往后滚后不能再往前滚。所以不能再返回来显示
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
#4
hollyzp(大树)
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
====我试着改了,可是问题还是老样子。。
显示的记录只是[025A]表中的记录,,如下例所示一样:
1......
2......
3......
4......
5.....省略(025A)表中就五个记录,然后他再进行反复显示这5个记录信息。
1.....
2....
3....
4....
5....
........就这样一直重复。。一直到行等于设置的(.Cols = 22)行。为止。
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
====我试着改了,可是问题还是老样子。。
显示的记录只是[025A]表中的记录,,如下例所示一样:
1......
2......
3......
4......
5.....省略(025A)表中就五个记录,然后他再进行反复显示这5个记录信息。
1.....
2....
3....
4....
5....
........就这样一直重复。。一直到行等于设置的(.Cols = 22)行。为止。
#5
我顶…;(
#6
简直是胡说八道之至,你在逗大家玩呢????
以上程序有很多明显的毛病,列举如下:
1 .TextMatrix(1, 0) = "处理号"
把列头设置在第二行?那么头上空了一行你拿来干什么?
2 .Cols = 22
你设置了那么多列,但是列头又只用到11列???后面的就空着?
3
Do While Not rsUser.EOF
.TextMatrix(.Rows - 1, 11) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 12) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
..................................其它同样处理的重复语句省略!
rsUser.MoveNext
Loop
如果你上面没有加rsUser.MoveFirst,那么这一段根本就不会被执行;
如果你加了,那么这一段会反复在最后一行的后面13列不停的写入你的
025B表内容,写了又写。这是什么烂程序????
这个程序的执行根本不可能出现你所说的情况。歇菜吧你。一边玩去。
以上程序有很多明显的毛病,列举如下:
1 .TextMatrix(1, 0) = "处理号"
把列头设置在第二行?那么头上空了一行你拿来干什么?
2 .Cols = 22
你设置了那么多列,但是列头又只用到11列???后面的就空着?
3
Do While Not rsUser.EOF
.TextMatrix(.Rows - 1, 11) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 12) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
..................................其它同样处理的重复语句省略!
rsUser.MoveNext
Loop
如果你上面没有加rsUser.MoveFirst,那么这一段根本就不会被执行;
如果你加了,那么这一段会反复在最后一行的后面13列不停的写入你的
025B表内容,写了又写。这是什么烂程序????
这个程序的执行根本不可能出现你所说的情况。歇菜吧你。一边玩去。
#7
'以下由蔡佳旺编写好像是你要的
Public Function GetFLexString(oFlex As MSHFlexGrid, lRow As Long, lCols As Long) As String
'lRow 是那行 lCols是列总数 Flex 的列是从1开始的
Dim I As Long
Dim sTemp As String
For I = 1 To lCols - 1
sTemp = sTemp & vbTab & oFlex.TextMatrix(lRow, I)
DoEvents
Next I
GetFLexString = sTemp
End Function
Public Sub SetCellWidth(oFlex As MSHFlexGrid)
Dim I As Integer
With oFlex
For I = 1 To .Cols - 1
DoEvents
.ColWidth(I) = 1200
Next I
End With
End Sub
Public Sub FillRecorSetToFlex(oFlex As MSHFlexGrid, recTmp As Recordset)
Dim fieTmp As Field
Dim sTmp As String
Dim sCaption As String
Dim lI As Long
If recTmp.EOF And recTmp.BOF Then
oFlex.Clear
Exit Sub '如果记录集中不含任何记录,则什么都不干
End If
recTmp.MoveFirst
recTmp.MoveLast
oFlex.ColWidth(0) = 300
If recTmp.EOF And recTmp.BOF Then Exit Sub '如果记录集中不含任何记录,则什么都不干
'填充标题栏
For Each fieTmp In recTmp.Fields
DoEvents
sCaption = sCaption & "|^" & fieTmp.Name
Next fieTmp
sCaption = sCaption & "|"
oFlex.FormatString = sCaption
SetCellWidth oFlex
'填充栏中数据
oFlex.Cols = recTmp.Fields.Count + 1 '设置列数
oFlex.Rows = 2 '设置行数
recTmp.MoveFirst
For lI = 0 To recTmp.RecordCount - 1
For Each fieTmp In recTmp.Fields '取得一个记录的全部字段的值
sTmp = sTmp & vbTab & fieTmp.Value
DoEvents
Next fieTmp
recTmp.MoveNext
oFlex.AddItem sTmp '添加数据
sTmp = "" '清空变量
Next lI
SetCellWidth oFlex '设置列宽
End Sub
Public Function GetFLexString(oFlex As MSHFlexGrid, lRow As Long, lCols As Long) As String
'lRow 是那行 lCols是列总数 Flex 的列是从1开始的
Dim I As Long
Dim sTemp As String
For I = 1 To lCols - 1
sTemp = sTemp & vbTab & oFlex.TextMatrix(lRow, I)
DoEvents
Next I
GetFLexString = sTemp
End Function
Public Sub SetCellWidth(oFlex As MSHFlexGrid)
Dim I As Integer
With oFlex
For I = 1 To .Cols - 1
DoEvents
.ColWidth(I) = 1200
Next I
End With
End Sub
Public Sub FillRecorSetToFlex(oFlex As MSHFlexGrid, recTmp As Recordset)
Dim fieTmp As Field
Dim sTmp As String
Dim sCaption As String
Dim lI As Long
If recTmp.EOF And recTmp.BOF Then
oFlex.Clear
Exit Sub '如果记录集中不含任何记录,则什么都不干
End If
recTmp.MoveFirst
recTmp.MoveLast
oFlex.ColWidth(0) = 300
If recTmp.EOF And recTmp.BOF Then Exit Sub '如果记录集中不含任何记录,则什么都不干
'填充标题栏
For Each fieTmp In recTmp.Fields
DoEvents
sCaption = sCaption & "|^" & fieTmp.Name
Next fieTmp
sCaption = sCaption & "|"
oFlex.FormatString = sCaption
SetCellWidth oFlex
'填充栏中数据
oFlex.Cols = recTmp.Fields.Count + 1 '设置列数
oFlex.Rows = 2 '设置行数
recTmp.MoveFirst
For lI = 0 To recTmp.RecordCount - 1
For Each fieTmp In recTmp.Fields '取得一个记录的全部字段的值
sTmp = sTmp & vbTab & fieTmp.Value
DoEvents
Next fieTmp
recTmp.MoveNext
oFlex.AddItem sTmp '添加数据
sTmp = "" '清空变量
Next lI
SetCellWidth oFlex '设置列宽
End Sub
#8
junglerover(灌木丛) 兄教训得是,我上面的代码有问题,,现在更改后就可以达到上述的效果了。。
代码部份如下:
If rsUser.State <> 0 Then rsUser.Close '关闭上次调用 '关闭上次调用
rsUser.Open ("SELECT [025A].*,[025B].* FROM [025A],[025B] WHERE [025A].ID=[025B].ID")
With MSFlexGrid1
.Rows = 2
.Cols = 11
.TextMatrix(1, 0) = "处理号"
.TextMatrix(1, 1) = "发报社号"
.TextMatrix(1, 2) = "发报社名"
.TextMatrix(1, 3) = "收报社号"
.TextMatrix(1, 4) = "收报社名"
.TextMatrix(1, 5) = "金额"
.TextMatrix(1, 6) = "收款社名称"
.TextMatrix(1, 7) = "付款单位名称"
.TextMatrix(1, 8) = "收款单位账号"
.TextMatrix(1, 9) = "编报日期"
.TextMatrix(1, 10) = "状态值"
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025A.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025A.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025A.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025A.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025A.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025A.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025A.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025A.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025A.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025A.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025A.ZhuangTai") '状态值
rsUser.MoveNext
Loop
'将记录再移到记录首
rsUser.MoveFirst
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025B.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025B.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025B.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025B.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025B.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025B.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025B.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025B.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025B.ZhuangTai") '状态值
rsUser.MoveNext
Loop
End With
代码部份如下:
If rsUser.State <> 0 Then rsUser.Close '关闭上次调用 '关闭上次调用
rsUser.Open ("SELECT [025A].*,[025B].* FROM [025A],[025B] WHERE [025A].ID=[025B].ID")
With MSFlexGrid1
.Rows = 2
.Cols = 11
.TextMatrix(1, 0) = "处理号"
.TextMatrix(1, 1) = "发报社号"
.TextMatrix(1, 2) = "发报社名"
.TextMatrix(1, 3) = "收报社号"
.TextMatrix(1, 4) = "收报社名"
.TextMatrix(1, 5) = "金额"
.TextMatrix(1, 6) = "收款社名称"
.TextMatrix(1, 7) = "付款单位名称"
.TextMatrix(1, 8) = "收款单位账号"
.TextMatrix(1, 9) = "编报日期"
.TextMatrix(1, 10) = "状态值"
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025A.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025A.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025A.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025A.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025A.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025A.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025A.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025A.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025A.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025A.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025A.ZhuangTai") '状态值
rsUser.MoveNext
Loop
'将记录再移到记录首
rsUser.MoveFirst
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025B.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025B.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025B.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025B.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025B.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025B.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025B.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025B.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025B.ZhuangTai") '状态值
rsUser.MoveNext
Loop
End With
#1
做两次查询,向msflexgrid写两次数据那?
#2
wangintel(cedbak) ( ) 信誉:100
做两次查询,向msflexgrid写两次数据那?
====如果这样得话上一次查询的调用,会被最近一次的调用所取代。
做两次查询,向msflexgrid写两次数据那?
====如果这样得话上一次查询的调用,会被最近一次的调用所取代。
#3
是不是rsuser的数据光标不对?是前滚类型
这样你数据指针往后滚后不能再往前滚。所以不能再返回来显示
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
这样你数据指针往后滚后不能再往前滚。所以不能再返回来显示
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
#4
hollyzp(大树)
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
====我试着改了,可是问题还是老样子。。
显示的记录只是[025A]表中的记录,,如下例所示一样:
1......
2......
3......
4......
5.....省略(025A)表中就五个记录,然后他再进行反复显示这5个记录信息。
1.....
2....
3....
4....
5....
........就这样一直重复。。一直到行等于设置的(.Cols = 22)行。为止。
上面你也没写 rs.movefirt,再次显示的时候要重新移到首位
====我试着改了,可是问题还是老样子。。
显示的记录只是[025A]表中的记录,,如下例所示一样:
1......
2......
3......
4......
5.....省略(025A)表中就五个记录,然后他再进行反复显示这5个记录信息。
1.....
2....
3....
4....
5....
........就这样一直重复。。一直到行等于设置的(.Cols = 22)行。为止。
#5
我顶…;(
#6
简直是胡说八道之至,你在逗大家玩呢????
以上程序有很多明显的毛病,列举如下:
1 .TextMatrix(1, 0) = "处理号"
把列头设置在第二行?那么头上空了一行你拿来干什么?
2 .Cols = 22
你设置了那么多列,但是列头又只用到11列???后面的就空着?
3
Do While Not rsUser.EOF
.TextMatrix(.Rows - 1, 11) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 12) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
..................................其它同样处理的重复语句省略!
rsUser.MoveNext
Loop
如果你上面没有加rsUser.MoveFirst,那么这一段根本就不会被执行;
如果你加了,那么这一段会反复在最后一行的后面13列不停的写入你的
025B表内容,写了又写。这是什么烂程序????
这个程序的执行根本不可能出现你所说的情况。歇菜吧你。一边玩去。
以上程序有很多明显的毛病,列举如下:
1 .TextMatrix(1, 0) = "处理号"
把列头设置在第二行?那么头上空了一行你拿来干什么?
2 .Cols = 22
你设置了那么多列,但是列头又只用到11列???后面的就空着?
3
Do While Not rsUser.EOF
.TextMatrix(.Rows - 1, 11) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 12) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
..................................其它同样处理的重复语句省略!
rsUser.MoveNext
Loop
如果你上面没有加rsUser.MoveFirst,那么这一段根本就不会被执行;
如果你加了,那么这一段会反复在最后一行的后面13列不停的写入你的
025B表内容,写了又写。这是什么烂程序????
这个程序的执行根本不可能出现你所说的情况。歇菜吧你。一边玩去。
#7
'以下由蔡佳旺编写好像是你要的
Public Function GetFLexString(oFlex As MSHFlexGrid, lRow As Long, lCols As Long) As String
'lRow 是那行 lCols是列总数 Flex 的列是从1开始的
Dim I As Long
Dim sTemp As String
For I = 1 To lCols - 1
sTemp = sTemp & vbTab & oFlex.TextMatrix(lRow, I)
DoEvents
Next I
GetFLexString = sTemp
End Function
Public Sub SetCellWidth(oFlex As MSHFlexGrid)
Dim I As Integer
With oFlex
For I = 1 To .Cols - 1
DoEvents
.ColWidth(I) = 1200
Next I
End With
End Sub
Public Sub FillRecorSetToFlex(oFlex As MSHFlexGrid, recTmp As Recordset)
Dim fieTmp As Field
Dim sTmp As String
Dim sCaption As String
Dim lI As Long
If recTmp.EOF And recTmp.BOF Then
oFlex.Clear
Exit Sub '如果记录集中不含任何记录,则什么都不干
End If
recTmp.MoveFirst
recTmp.MoveLast
oFlex.ColWidth(0) = 300
If recTmp.EOF And recTmp.BOF Then Exit Sub '如果记录集中不含任何记录,则什么都不干
'填充标题栏
For Each fieTmp In recTmp.Fields
DoEvents
sCaption = sCaption & "|^" & fieTmp.Name
Next fieTmp
sCaption = sCaption & "|"
oFlex.FormatString = sCaption
SetCellWidth oFlex
'填充栏中数据
oFlex.Cols = recTmp.Fields.Count + 1 '设置列数
oFlex.Rows = 2 '设置行数
recTmp.MoveFirst
For lI = 0 To recTmp.RecordCount - 1
For Each fieTmp In recTmp.Fields '取得一个记录的全部字段的值
sTmp = sTmp & vbTab & fieTmp.Value
DoEvents
Next fieTmp
recTmp.MoveNext
oFlex.AddItem sTmp '添加数据
sTmp = "" '清空变量
Next lI
SetCellWidth oFlex '设置列宽
End Sub
Public Function GetFLexString(oFlex As MSHFlexGrid, lRow As Long, lCols As Long) As String
'lRow 是那行 lCols是列总数 Flex 的列是从1开始的
Dim I As Long
Dim sTemp As String
For I = 1 To lCols - 1
sTemp = sTemp & vbTab & oFlex.TextMatrix(lRow, I)
DoEvents
Next I
GetFLexString = sTemp
End Function
Public Sub SetCellWidth(oFlex As MSHFlexGrid)
Dim I As Integer
With oFlex
For I = 1 To .Cols - 1
DoEvents
.ColWidth(I) = 1200
Next I
End With
End Sub
Public Sub FillRecorSetToFlex(oFlex As MSHFlexGrid, recTmp As Recordset)
Dim fieTmp As Field
Dim sTmp As String
Dim sCaption As String
Dim lI As Long
If recTmp.EOF And recTmp.BOF Then
oFlex.Clear
Exit Sub '如果记录集中不含任何记录,则什么都不干
End If
recTmp.MoveFirst
recTmp.MoveLast
oFlex.ColWidth(0) = 300
If recTmp.EOF And recTmp.BOF Then Exit Sub '如果记录集中不含任何记录,则什么都不干
'填充标题栏
For Each fieTmp In recTmp.Fields
DoEvents
sCaption = sCaption & "|^" & fieTmp.Name
Next fieTmp
sCaption = sCaption & "|"
oFlex.FormatString = sCaption
SetCellWidth oFlex
'填充栏中数据
oFlex.Cols = recTmp.Fields.Count + 1 '设置列数
oFlex.Rows = 2 '设置行数
recTmp.MoveFirst
For lI = 0 To recTmp.RecordCount - 1
For Each fieTmp In recTmp.Fields '取得一个记录的全部字段的值
sTmp = sTmp & vbTab & fieTmp.Value
DoEvents
Next fieTmp
recTmp.MoveNext
oFlex.AddItem sTmp '添加数据
sTmp = "" '清空变量
Next lI
SetCellWidth oFlex '设置列宽
End Sub
#8
junglerover(灌木丛) 兄教训得是,我上面的代码有问题,,现在更改后就可以达到上述的效果了。。
代码部份如下:
If rsUser.State <> 0 Then rsUser.Close '关闭上次调用 '关闭上次调用
rsUser.Open ("SELECT [025A].*,[025B].* FROM [025A],[025B] WHERE [025A].ID=[025B].ID")
With MSFlexGrid1
.Rows = 2
.Cols = 11
.TextMatrix(1, 0) = "处理号"
.TextMatrix(1, 1) = "发报社号"
.TextMatrix(1, 2) = "发报社名"
.TextMatrix(1, 3) = "收报社号"
.TextMatrix(1, 4) = "收报社名"
.TextMatrix(1, 5) = "金额"
.TextMatrix(1, 6) = "收款社名称"
.TextMatrix(1, 7) = "付款单位名称"
.TextMatrix(1, 8) = "收款单位账号"
.TextMatrix(1, 9) = "编报日期"
.TextMatrix(1, 10) = "状态值"
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025A.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025A.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025A.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025A.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025A.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025A.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025A.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025A.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025A.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025A.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025A.ZhuangTai") '状态值
rsUser.MoveNext
Loop
'将记录再移到记录首
rsUser.MoveFirst
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025B.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025B.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025B.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025B.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025B.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025B.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025B.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025B.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025B.ZhuangTai") '状态值
rsUser.MoveNext
Loop
End With
代码部份如下:
If rsUser.State <> 0 Then rsUser.Close '关闭上次调用 '关闭上次调用
rsUser.Open ("SELECT [025A].*,[025B].* FROM [025A],[025B] WHERE [025A].ID=[025B].ID")
With MSFlexGrid1
.Rows = 2
.Cols = 11
.TextMatrix(1, 0) = "处理号"
.TextMatrix(1, 1) = "发报社号"
.TextMatrix(1, 2) = "发报社名"
.TextMatrix(1, 3) = "收报社号"
.TextMatrix(1, 4) = "收报社名"
.TextMatrix(1, 5) = "金额"
.TextMatrix(1, 6) = "收款社名称"
.TextMatrix(1, 7) = "付款单位名称"
.TextMatrix(1, 8) = "收款单位账号"
.TextMatrix(1, 9) = "编报日期"
.TextMatrix(1, 10) = "状态值"
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025A.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025A.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025A.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025A.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025A.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025A.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025A.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025A.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025A.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025A.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025A.ZhuangTai") '状态值
rsUser.MoveNext
Loop
'将记录再移到记录首
rsUser.MoveFirst
Do While Not rsUser.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsUser.Fields("025B.ID")
.TextMatrix(.Rows - 1, 1) = rsUser.Fields("025B.FaBaoSheHao") '发报社号
.TextMatrix(.Rows - 1, 2) = rsUser.Fields("025B.FaBaoSheMing") '发报社名
.TextMatrix(.Rows - 1, 3) = rsUser.Fields("025B.ShouBaoSheHao") '收报社号
.TextMatrix(.Rows - 1, 4) = rsUser.Fields("025B.ShouBaoSheMing") '收报社名
.TextMatrix(.Rows - 1, 5) = Format(rsUser.Fields("025B.JinEe"), "##,###.#0") '金额
.TextMatrix(.Rows - 1, 6) = rsUser.Fields("025B.ShouKuanSheMingCen") '收款社名称
.TextMatrix(.Rows - 1, 7) = rsUser.Fields("025B.ShouKuanDanWeiZhangHao") '收款单位账号
.TextMatrix(.Rows - 1, 8) = rsUser.Fields("025B.FuKuanDanWeiMingCen") '付款单位名称
.TextMatrix(.Rows - 1, 9) = Format(rsUser.Fields("025B.BianBaoRiQi"), "yyyy-mm-dd") '编报日期
.TextMatrix(.Rows - 1, 10) = rsUser.Fields("025B.ZhuangTai") '状态值
rsUser.MoveNext
Loop
End With