菜鳥問題7:如何利用SQL語句查詢

jimmyge 2004-11-23 03:03:00
1.書上有一例題,但偶未調試成功!請高手及版主指教.謝謝!

2.代碼如下:

Option Explicit
Dim DbStr As String
Dim Result As Integer
Dim i As Integer

Private Sub Check1_Click(index As Integer)
If Check1(0).Value = 1 Then
Combo1.Enabled = True
Else
Combo1.Enabled = False
Combo1.Text = ""
End If

If Check1(1).Value = 1 Then
Combo2.Enabled = True
Else
Combo2.Enabled = False
Combo2.Text = ""
End If

If Check1(2).Value = 1 Then
Combo3.Enabled = True
Else
Combo3.Enabled = False
Combo3.Text = ""
End If
End Sub

Private Sub Command1_Click()
Dim tempstr As String
tempstr = DbStr
If Check1(0).Value = 1 And Not IsNull(Combo1.Text) Then
DbStr = DbStr + "and[性别]=" + Combo1.Text + ""
End If

If Check1(1).Value = 1 And Not IsNull(Combo2.Text) Then
DbStr = DbStr + "and[学历]=" + Combo2.Text + ""
End If

If Check1(2).Value = 1 And Not IsNull(Combo3.Text) Then
DbStr = DbStr + "and[特长]=" + Combo1.Text + ""
End If

Data1.RecordSource = DbStr
List1.Clear
DbStr = tempstr
Data1.Refresh
If Data1.Recordset.BOF Or Data1.Recordset.EOF Then
Result = MsgBox("没有找到此记录", 48, "提示")
Exit Sub
End If
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
For i = 1 To Data1.Recordset.RecordCount
List1.AddItem Data1.Recordset.Fields(0)
Data1.Recordset.MoveNext
Next i
Data1.Recordset.MoveFirst
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()

Combo1.Enabled = False
Combo2.Enabled = False
Combo3.Enabled = False
DbStr = "select * form person where [姓名]=[姓名]"---------where [姓名]=[姓名]啥意思?
Data1.DatabaseName = App.Path + "\db.mdb"
Data1.RecordSource = DbStr
List1.Clear
Data1.Refresh
If Data1.Recordset.BOF Or Data1.Recordset.EOF Then
Result = MsgBox("没有找到此记录", 48, "提示")
Exit Sub
End If
For i = 1 To Data1.Recordset.RecordCount
List1.AddItem Data1.Recordset.Fields(0)
Data1.Recordset.MoveNext
Next i
Data1.Recordset.MoveFirst
End Sub


3.點解?請賜教!呵呵....

4.各位有無測試通過的數據庫代碼程序?偶想要幾個看看,呵呵...
...全文
117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimmyge 2004-11-24
  • 打赏
  • 举报
回复
1.莫依MM,就不要取笑在下了!學DATA也是一個數據庫操作之基礎!呵呵...

2.敢問莫衣MM,你是用啥東東與數據庫之連接.
jimmyge 2004-11-24
  • 打赏
  • 举报
回复
多謝諸位!呵呵...
daisy8675 2004-11-23
  • 打赏
  • 举报
回复
同学,你居然还在用data的控件。。。。我汗
zhaochengqing 2004-11-23
  • 打赏
  • 举报
回复
自己去做一次就明白了,什么都是从不会到会的~~~~~~~~~~~~~
射天狼 2004-11-23
  • 打赏
  • 举报
回复
Option Explicit

'工程->引用->Microsoft ActiveX Data Objects 2.0 Library (后面为版本号)
Dim rs As New ADODB.Recordset, cn As New ADODB.Connection

'在MSHFLEXGRID表格控件中显示查询到的内容
Private Sub Command1_Click()
If rs.State = adStateOpen Then rs.Close
rs.Open "SELECT * FROM USERPASSWORD", cn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
End Sub

'向数据库中添加数据
Private Sub Command2_Click()
If rs.State = adStateOpen Then rs.Close
rs.Open "SELECT * FROM USERPASSWORD", cn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs!UID = txtUid.Text
rs!PWD = txtPwd.Text
rs!TRUENAME = txtName.Text
rs!CREATEDATE = Format(Now, "YYYY/MM/DD")
rs.Update

Command1.Value = True
End Sub

'从数据库中删除数据
Private Sub Command3_Click()
cn.Execute "DELETE FROM USERPASSWORD WHERE UID = '" & txtUid.Text & "'"
Command1.Value = True
End Sub

Private Sub Command4_Click()
With MSHFlexGrid1
Clipboard.SetText .Text
End With
End Sub

Private Sub Command5_Click()
With MSHFlexGrid1
.Text = Clipboard.GetText
End With
End Sub

Private Sub Form_Load()
cn.ConnectionString = "DBQ=" & App.Path & "\TelePhone.mdb;DefaultDir=" & _
App.Path & ";Driver={Microsoft Access Driver (*.mdb)};" & _
"DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
"MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
"Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=admind1234;"
cn.Open
'查询字符串可以上这里查
'http://www.connectionstrings.com/
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub

Private Sub MSHFlexGrid1_RowColChange()
With MSHFlexGrid1
'MsgBox .TextMatrix(.Row, .Col)
End With
End Sub
lxtlwd 2004-11-23
  • 打赏
  • 举报
回复
在VB中先引用ADO控件


Function InitConn() As Boolean
'模块功能: 连接数据库
'输入参数:
'输出参数:
'调用函数:
'开始时间:2004.02.13
'修改记录:
'注 意:

On Error GoTo err
InitConn = True
Set gCnnMain = New Connection
gCnnMain.CursorLocation = adUseClient
gCnnMain.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\main.mdb;Persist Security Info=False;Jet OLEDB:Database Password=999999"


Exit Function
err:
InitConn = False
End Function

通过InitConn函数打开数据库连接后就可以用 gCnnMain.Execute SQL语句
jimmyge 2004-11-23
  • 打赏
  • 举报
回复
補充說明:偶有建一個db.mdb的access數據庫文件,字段表為person.並保存有6條記錄!.呵呵...
qiangsheng 2004-11-23
  • 打赏
  • 举报
回复
你没有建一个名叫db.mdb的access文件吧

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧