vb数据库查询

lyyyy191 2008-09-12 10:08:57
我在查询芯片数据库的内容时显示的是我全部的数据库内容,而不是我想要得数据,而且只能点击一次查询按键,再点程序就进入我自己写的错误提示里面了。希望大家能帮我解决,我是个新手第一次用VB写软件。下面是我查询界面的全部代码,想要我全部程序可以加我的QQ14215947或是留下邮箱我给发过去。(附件传不上来,请见谅)
Option Explicit
Dim rs_find As New ADODB.Recordset


Private Sub Command1_Click()
On Error GoTo cmderror
Dim find_date1 As String
Dim find_date2 As String
If Option1.Value = True Then
sqlfind = "select * from 芯片库 where 品名 = '" & Combo1.Text & "'"

End If
If Option2.Value = True Then
find_date1 = Format(CDate(comboy(0).Text & "-" & _
combom(0).Text & "-" & combod(0).Text), "yyyy-mm-dd")
find_date2 = Format(CDate(comboy(1).Text & "-" & _
combom(1).Text & "-" & combod(1).Text), "yyyy-mm-dd")
sqlfind = "select * from 芯片库 where 进货日期 between #" & _
find_date1 & "#" & " and" & " #" & find_date2 & "#"

End If
rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistic
Adodc1.Refresh
cmderror:
If Err.Number <> 0 Then
MsgBox "请输入正确的查询条件!", vbOKOnly + vbExclamation, "警告"
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
Dim i As Integer
Dim j As Integer
Dim sql As String
'If findok = True Then
'rs_data1.Close
'End If
sql = "select * from 芯片库 order by 品名 desc"
rs_find.CursorLocation = adUseClient
rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_find.EOF = False Then '添加品名
With rs_find
Do While Not .EOF
Combo1.AddItem .Fields(1)
.MoveNext
Loop
End With
End If
For i = 2001 To 2010 '添加年
comboy(0).AddItem i
comboy(1).AddItem i
Next i
For i = 1 To 12 '添加月
combom(0).AddItem i
combom(1).AddItem i
Next i
For i = 1 To 31 '添加日
combod(0).AddItem i
combod(1).AddItem i
Next i

End Sub

Private Sub Option1_Click()
Option2.Value = False
End Sub

Private Sub Option2_Click()
Option1.Value = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
rs_find.Close
End Sub
...全文
728 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhju3507 2008-09-23
  • 打赏
  • 举报
回复
Private Sub Form_Load()
'为 ColumnHeader 对象创建对象变量。
Dim clmX As ColumnHeader
'添加 ColumnHeaders。列宽度等于控件宽度
'除以 ColumnHeader 对象的数目。
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Company", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Address", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Phone", ListView1.Width / 3)

ListView1.BorderStyle = ccFixedSingle '设置 BorderStyle 属性。
ListView1.View = lvwReport '设置 View 属性为报表型。
Command1.Caption = "&FindItem"

'用 FindItem 选项标注 OptionButton 控件。
Option1(0).Caption = "Text"
Option1(1).Caption = "SubItem"
Option1(2).Caption = "Tag"
ListView1.FindItem = 0 '设置 ListView 控件的 FindItem 属性为文本。
End With

'将数据库记录植入 ListView 控件。
'为数据访问对象创建对象变量。
Dim myDb As Database, myRs As Recordset
'设置数据库为 BIBLIO.MDB 数据库。
Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
'设置 recordset 为 Publishers 表。
Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)

'若当前记录不是最后一条记录,则添加 ListItem 对象。
'使用新对象的引用设置属性。
'设置 Text 属性为 Name 字段 (myRS!Name)。
'设置 SubItem(1) 为 Address 字段 (myRS!Address)。
'设置 SubItem(7) 为 Phone 字段 (myRS!Telephone)。

While Not myRs.EOF
Dim itmX As ListItem 'ListItem 变量。
Dim intCount As Integer '计数器变量。
'使用 Add 方法添加新的 ListItem 并为新引用设置对象。
'使用引用设置
'属性。
Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))
intCount = intCount + 1 'Tag 属性计数器递增。
itmX.Tag = "ListItem " & intCount '用计数器值设置 Tag。

'若 Address 字段不为空,则设置 subitem 1 为此字段。
If Not IsNull(myRs!Address) Then
itmX.SubItems(1) = CStr(myRs!Address) 'Address 字段。
End If

'若 Phone 字段不为空,则设置 subitem 2 为此字段。
If Not IsNull(myRs!Telephone) Then
itmX.SubItems(2) = myRs!Telephone 'Phone 字段。
End If

myRs.MoveNext '移动到下一条记录。
Wend
End Sub

Private Sub Command1_Click()
'FindItem 方法。
'创建名为 intSelectedOption 的整数类型变量
'来存储选定按钮的索引。
'创建名为 strFindMe 的字符串变量。使用 InputBox
'把查找的字符串存储在变量中。使用
' FindItem 方法查找字符串。使用 Option1
'切换决定在何处查找的 FindItem 参数。

Dim intSelectedOption as Integer
Dim strFindMe As String
If Option1(0).Value = True then
strFindMe = InputBox("Find in " & Option1(0).Caption)
intSelectedOption = lvwText
End If
If Option1(1).Value = True then
strFindMe = InputBox("Find in " & Option1(1).Caption)
intSelectedOption = lvwSubItem
End If
If Option1(2).Value = True then
strFindMe = InputBox("Find in " & Option1(2).Caption)
intSelectedOption = lvwTag
End If

'FindItem 方法返回找到的项目的引用,所以
'必须创建对象变量并将
'找到的项目设置给它。
Dim itmFound As ListItem 'FoundItem 变量。

Set itmFound = ListView1. _
FindItem(strFindMe, intSelectedOption, , lvwPartial)

'若未找到符合条件的 ListItem 则通知用户并退出。如果
'找到 ListItem,则使用 EnsureVisible 方法滚动控件,
'并选定 ListItem。
If itmFound Is Nothing Then '若没有匹配成功,则通知用户并退出。
MsgBox "No match found"
Exit Sub
Else
itmFound.EnsureVisible '滚动 ListView 以显示找到的 ListItem。
itmFound.Selected = True '选定ListItem。
'将焦点返回给控件以查看选择。
ListView1.SetFocus
End If
End Sub

Private Sub ListView1_LostFocus()
'控件失去焦点后,重新将每个
' ListItem 的 Selected 属性设置为 False。
Dim i As Integer
For i = 1 to ListView1.ListItems.Count
ListView1.ListItems.Item(i).Selected = False
Next i
End Sub

myloveyoyo1314 2008-09-19
  • 打赏
  • 举报
回复
提示什么错误

好像记录集没有close

1,216

社区成员

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

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