VB6 ACCESS查询结果显示在MSHFlexgrid中
刚学VB,这个地方实在整不明白了,帮忙看看我这代码该怎么写啊,谢谢了,打叉的地方是我不会的,哪里不对的地方告诉我啊,谢谢了。PrivateSubCommand5_Clic...
刚学VB,这个地方实在整不明白了,帮忙看看我这代码该怎么写啊,谢谢了,打叉的地方是我不会的,哪里不对的地方告诉我啊,谢谢了。
Private
Sub Command5_Click()
If Text2.Text = "" Then
MsgBox
("请在甲方处输入您想要查询的合同,例如:建三江")
Else
Dim sc As String
sc =
MsgBox("确实要查询此测区的合同么?", vbOKCancel, "系统提示")
If sc = 1 Then
Dim conn As New
ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str1 As String
Dim
str2 As String
Dim str3 As String
str1 = "provider =
microsoft.jet.oledb.4.0;"
str2 = "data source =
c:\合同管理\contract.mdb;"
str3 = "jet oledb:database password =
"
conn.Open str1 & str2 & str3
strsql = "select * from
xiangmu where 甲方 = " & Val(Text2.Text) & ""
rs.Open strsql, conn,
3, 3
If rs!甲方 = Val(Text2.Text)
Then
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXX
Else
MsgBox
("不存在此记录")
Text2.Text = ""
XXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
Exit
Sub
End If
End If
End If
End Sub
我就是想实现这个功能
单击按钮command1的时候,把select*from xiangmu where 甲方 = "&val(text1.text)&"的查询结果显示在mshflexgrid中,代码该怎么写,求高手帮忙。 展开
Private
Sub Command5_Click()
If Text2.Text = "" Then
MsgBox
("请在甲方处输入您想要查询的合同,例如:建三江")
Else
Dim sc As String
sc =
MsgBox("确实要查询此测区的合同么?", vbOKCancel, "系统提示")
If sc = 1 Then
Dim conn As New
ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str1 As String
Dim
str2 As String
Dim str3 As String
str1 = "provider =
microsoft.jet.oledb.4.0;"
str2 = "data source =
c:\合同管理\contract.mdb;"
str3 = "jet oledb:database password =
"
conn.Open str1 & str2 & str3
strsql = "select * from
xiangmu where 甲方 = " & Val(Text2.Text) & ""
rs.Open strsql, conn,
3, 3
If rs!甲方 = Val(Text2.Text)
Then
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXX
Else
MsgBox
("不存在此记录")
Text2.Text = ""
XXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
Exit
Sub
End If
End If
End If
End Sub
我就是想实现这个功能
单击按钮command1的时候,把select*from xiangmu where 甲方 = "&val(text1.text)&"的查询结果显示在mshflexgrid中,代码该怎么写,求高手帮忙。 展开
1个回答
展开全部
'1、你这里sql中已经有了 甲方 = " & Val(Text2.Text) 这个判断,这里就不要if去判断了,因为有记录的话 肯定是相等的
换成 if rs.recordcount >0 then '--表示如果rs中记录行数 >0
'2、填写表格(mshfg),用for,或者do while 循环都可以
'我举个例子
With mshfg
.rows = rs.RecordCount + 1 '设置表格的行数= 记录数+1 ,第一行 字段名
.cols = rs.Fields.Count
.redraw = False '防止闪烁
'--表格第一行填入 字段名 ,记住表格的行列 都是从 0 开始
For i = 0 To .cols - 1
.TextMatrix(0, j) = rs(0).Name
Next
For i = 1 To .rows - 1 '循环记录行数
For j = 0 To .cols - 1 '循环列数
.TextMatrix(i, j) = rs(0).Value
Next
Next
.redraw = True
End With
'--上面就是讲查询出的数据全部填入表格,比较简单,质量上还可以改善,具体的要看你的要求
’--有问题可以再一起探讨
追问
我上个星期才开始学习VB,说实话,你写的我看的一知半解
我之前写的那个提示“表达式中数据类型不匹配”,点调试之后定位在“rs.Open strsql, conn, 3, 3”。
我想实现这样一个功能---单击按钮command1的时候,把select*from xiangmu where 甲方 = "&val(text1.text)&"的查询结果显示在mshflexgrid中,能把具体的代码写给我么
追答
1、这差不多已经是具体的代码,可以直接套进去了 ,只是一些名称需要换一下。而且像表格的名称之类的你也没写具体,怎么写的具体
2、rs.Open strsql, conn, 3, 3 -- 这句话有错,是因为你少了一个参数,你在后面加上参数adCmdText 或者 1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询