**********************************************
Private Sub Command1_Click()
Dim SQL As String
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim MsgString As String
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"
SQL = "SELECT * FROM 报告 WHERE "
If (Check1.Value = 1 And Check2.Value = 1) Or (Check1.Value = 1 And Check3.Value = 1) Or (Check1.Value = 1 And Check4.Value = 1) Or (Check2.Value = 1 And Check3.Value = 1) Or (Check2.Value = 1 And Check4.Value = 1) Or (Check3.Value = 1 And Check4.Value = 1) Then
MsgBox "对不起,你只能用一种查询方式"
End If
If Check1.Value <> 1 And Check2.Value <> 1 And Check3.Value <> 1 And Check4.Value <> 1 Then
MsgBox "你忘记了选择"
End If
If Check1.Value = 1 And Check2.Value <> 1 And Check3.Value <> 1 And Check4.Value <> 1 Then
If Trim(Text1.Text) = "" Then
MsgBox "空输入!", vbOKOnly
Text1.SetFocus
End If
SQL = SQL & "学号='" & Trim(Text1.Text) & "'"
End If
If Check1.Value <> 1 And Check2.Value = 1 And Check3.Value <> 1 And Check4.Value <> 1 Then
If Trim(Text2.Text) = "" Then
MsgBox "空输入!", vbOKOnly
Text2.SetFocus
End If
SQL = SQL & "班号='" & Trim(Text2.Text) & "'"
End If
If Check1.Value <> 1 And Check2.Value <> 1 And Check3.Value = 1 And Check4.Value <> 1 Then
If Trim(Text3.Text) = "" Then
MsgBox "空输入!", vbOKOnly
Text3.SetFocus
End If
SQL = SQL & "姓名='" & Trim(Text3.Text) & "'"
End If
If Check1.Value <> 1 And Check2.Value <> 1 And Check3.Value <> 1 And Check4.Value = 1 Then
If Trim(Text4.Text) = "" Then
MsgBox "输入年空", vbOKOnly
Text4.SetFocus
Else
If Trim(Text5.Text) = "" Then
MsgBox "输入月空", vbOKOnly
Text5.SetFocus
Else
If Trim(Text6.Text) = "" Then
MsgBox "输入日空", vbOKOnly
Text6.SetFocus
End If
End If
End If
SQL = SQL & "年='" & Trim(Text4.Text) & "'"
SQL = SQL & "AND 月='" & Trim(Text5.Text) & "'"
SQL = SQL & "AND 日='" & Trim(Text6.Text) & "'"
End If
'conn.Execute SQL
rs.Open SQL ,conn, adOpenDynamic, adLockOptimistic////出错地方
With myflexgrid
.Rows = 2
.CellAlignment = 4
.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) = "X所见及解释"
Do While Not rs.EOF
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = rs.Fields(0)
.TextMatrix(.Rows - 1, 1) = rs.Fields(1)
.TextMatrix(.Rows - 1, 2) = rs.Fields(2)
.TextMatrix(.Rows - 1, 3) = rs.Fields(3)
.TextMatrix(.Rows - 1, 4) = rs.Fields(4)
.TextMatrix(.Rows - 1, 5) = rs.Fields(5)
.TextMatrix(.Rows - 1, 6) = rs.Fields(6)
.TextMatrix(.Rows - 1, 7) = rs.Fields(7)
.TextMatrix(.Rows - 1, 8) = rs.Fields(8)
.TextMatrix(.Rows - 1, 9) = rs.Fields(9)
.TextMatrix(.Rows - 1, 10) = rs.Fields(10)
rs.MoveNext
Loop
End With
conn.Close
rs.Close
End Sub
Private Sub Command2_Click()
Form2.Show
Me.Hide
End Sub出错说明:查询字句标准表达式数据类型不匹配而当我把where后的 空格去掉后,提示错误:From字句错误而当我在rs.Open后面不用SQL,而用"select * from 报表 "时,则提示错误:错误用valid
**********************************************
Private Sub Command1_Click()
Dim SQL As String
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim MsgString As String
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"
SQL = "SELECT * FROM 报告 WHERE "
If (Check1.Value = 1 And Check2.Value = 1) Or (Check1.Value = 1 And Check3.Value = 1) Or (Check1.Value = 1 And Check4.Value = 1) Or (Check2.Value = 1 And Check3.Value = 1) Or (Check2.Value = 1 And Check4.Value = 1) Or (Check3.Value = 1 And Check4.Value = 1) Then
MsgBox "对不起,你只能用一种查询方式"
End If
If Check1.Value <> 1 And Check2.Value <> 1 And Check3.Value <> 1 And Check4.Value <> 1 Then
MsgBox "你忘记了选择"
End If
If Check1.Value = 1 And Check2.Value <> 1 And Check3.Value <> 1 And Check4.Value <> 1 Then
If Trim(Text1.Text) = "" Then
MsgBox "空输入!", vbOKOnly
Text1.SetFocus
End If
SQL = SQL & "学号='" & Trim(Text1.Text) & "'"
End If
If Check1.Value <> 1 And Check2.Value = 1 And Check3.Value <> 1 And Check4.Value <> 1 Then
If Trim(Text2.Text) = "" Then
MsgBox "空输入!", vbOKOnly
Text2.SetFocus
End If
SQL = SQL & "班号='" & Trim(Text2.Text) & "'"
End If
If Check1.Value <> 1 And Check2.Value <> 1 And Check3.Value = 1 And Check4.Value <> 1 Then
If Trim(Text3.Text) = "" Then
MsgBox "空输入!", vbOKOnly
Text3.SetFocus
End If
SQL = SQL & "姓名='" & Trim(Text3.Text) & "'"
End If
If Check1.Value <> 1 And Check2.Value <> 1 And Check3.Value <> 1 And Check4.Value = 1 Then
If Trim(Text4.Text) = "" Then
MsgBox "输入年空", vbOKOnly
Text4.SetFocus
Else
If Trim(Text5.Text) = "" Then
MsgBox "输入月空", vbOKOnly
Text5.SetFocus
Else
If Trim(Text6.Text) = "" Then
MsgBox "输入日空", vbOKOnly
Text6.SetFocus
End If
End If
End If
SQL = SQL & "年='" & Trim(Text4.Text) & "'"
SQL = SQL & "AND 月='" & Trim(Text5.Text) & "'"
SQL = SQL & "AND 日='" & Trim(Text6.Text) & "'"
End If
'conn.Execute SQL
rs.Open SQL ,conn, adOpenDynamic, adLockOptimistic////出错地方
With myflexgrid
.Rows = 2
.CellAlignment = 4
.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) = "X所见及解释"
Do While Not rs.EOF
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = rs.Fields(0)
.TextMatrix(.Rows - 1, 1) = rs.Fields(1)
.TextMatrix(.Rows - 1, 2) = rs.Fields(2)
.TextMatrix(.Rows - 1, 3) = rs.Fields(3)
.TextMatrix(.Rows - 1, 4) = rs.Fields(4)
.TextMatrix(.Rows - 1, 5) = rs.Fields(5)
.TextMatrix(.Rows - 1, 6) = rs.Fields(6)
.TextMatrix(.Rows - 1, 7) = rs.Fields(7)
.TextMatrix(.Rows - 1, 8) = rs.Fields(8)
.TextMatrix(.Rows - 1, 9) = rs.Fields(9)
.TextMatrix(.Rows - 1, 10) = rs.Fields(10)
rs.MoveNext
Loop
End With
conn.Close
rs.Close
End Sub
Private Sub Command2_Click()
Form2.Show
Me.Hide
End Sub出错说明:查询字句标准表达式数据类型不匹配而当我把where后的 空格去掉后,提示错误:From字句错误而当我在rs.Open后面不用SQL,而用"select * from 报表 "时,则提示错误:错误用valid
**********************************************
解决方案 »
- 有没有办法让IDE里的模块按函数名排序
- access数据备份
- 请问:如何在textbox中实现自动输入
- 什么是MAC啊?
- 如何检查一个字符串中有多少个字节!
- VB操作ACCESS问题!!!急急急,在线等!!!
- 请问,用open打开文本文件后,用print写文件,在每一行最后总加上回车,怎么才能不让它加回车呀??
- internet打包问题,为什么字体文件不能自动安装,链接库文件打包进去后不能自动注册??
- 十万火急,VB6开发的程序,在WIN8下运行时,用搜狗拼音在文本框输入汉字时,显示的正确,但是按空格后在文本框内得到的却不是刚刚显示的汉字,请问如何解决
- 如何制作背景透明的控件
- 如何将生成的PICTUREBOX的结果图(不是里面的图片)保存到某图形文件或打印
- 出现下面的错误, 请问怎样解决?
///通常數字"& &" ,字符'"&&"'
SQL = "SELECT * FROM 报告 WHERE班号='" & Trim(Text2.Text) & "'"//rs.Open SQL ,conn, adOpenDynamic, adLockOptimistic////出错地方
跟踪一下sql的值就知道了
在這裡設置斷掉。
debug.print strsql這句話.
跟踪sql的值?
但是我不知怎么跟踪
用form1.caption=SQL吗?
但是我不知怎么跟踪
///設置斷點呀,就是單擊把rs.Open strSQL ,conn, adOpenDynamic, adLockOptimistic////出錯地方這裡面變紅色然後msgbox sql 我是建議你不要用sql,你不信隨便你
SQL = SQL & "年=#" & Format(Text4.Text,"yy") & "#"
SQL = SQL & "AND 月=#" & Format(Text5.Text,"mm") & "#"
SQL = SQL & "AND 日=#" & Format(Text6.Text,"dd") & "#"
先前没有刷新,没有看到
就是说我把SQL完全不考虑了
现在程序变成
Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim MsgString As String
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"
conn.Execute SQL
rs.Open "select * from 报表",conn, adOpenDynamic, adLockOptimistic
end sub
就这么简单也会出错
提示:valid use NUll
请问时怎么回事?
//當然錯了sql都沒有嗎Option Explicit
Public conn As New ADODB.Connection
Public rs As New ADODB.RecordsetPrivate Sub Form_Load()
Dim strconn As String
strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password='123'"
conn.CursorLocation = adUseClient
conn.Open strconn
If rs.State = 1 Then rs.Close
rs.Open "select * from Phonebook", conn, 3, 3
Set Me.DataGrid1.DataSource = rs
End Sub