⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 图书查询.frm

📁 其中包含比较详细的软件工程的概要设计说明书、详细设计说明书、系统需求规格说明书、项目开发计划书、软件工程课程设计报告、项目可行性研究报告
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         Text            =   "无其他条件"
         Top             =   1680
         Width           =   1455
      End
      Begin VB.TextBox Text1 
         Height          =   285
         Left            =   1680
         TabIndex        =   2
         Top             =   960
         Width           =   3495
      End
      Begin VB.ComboBox Combo1 
         Height          =   300
         ItemData        =   "图书查询.frx":0103
         Left            =   480
         List            =   "图书查询.frx":0113
         TabIndex        =   1
         Text            =   "书名"
         Top             =   960
         Width           =   1095
      End
      Begin VB.Frame Frame1 
         Height          =   735
         Left            =   240
         TabIndex        =   5
         Top             =   720
         Width           =   6855
      End
      Begin VB.Label helpme 
         AutoSize        =   -1  'True
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   14.25
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   285
         Left            =   -74160
         TabIndex        =   23
         Top             =   840
         Width           =   150
      End
   End
End
Attribute VB_Name = "图书查询"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Clear_Click()
    Text1.Text = ""
    Text2.Text = ""
End Sub

Private Sub Clear2_Click()
    CmbReaderid.Text = ""
    TxtPwd.Text = ""
End Sub

Private Sub Cmdexit3_Click()
    Unload Me       '第一步,第二步执行UNLOAD ME 的过程
    Unload 主界面   '第三步
End Sub

Private Sub Cmdreturn3_Click()
    Unload Me
End Sub

Private Sub Combo2_click()                              '不显示第二个查询条件
    If Combo2.Text <> "无其他条件" Then
        Frame4.Visible = True
    Else
        Frame4.Visible = False
    End If
End Sub

Private Sub Exit_Click()
    Unload Me       '第一步,第二步执行UNLOAD ME 的过程
    Unload 主界面   '第三步
End Sub

Private Sub Exit1_Click()
    Unload Me
    Unload 主界面       '给主界面发结束信号
End Sub


Private Sub Form_Load()
'    Dim str As String
''    Dim cnn1 As New ADODB.Connection
''    cnn1.Open Adodc1.ConnectionString
'    str = "select * from book"
'    Adodc1.RecordSource = str
'    Adodc1.Recordset.Open str, cnn1, adOpenKeyset
    Dim rsReader As ADODB.Recordset
    Dim i As Long
    
    Set rsReader = de.rsReader
    i = 0
    
    While (rsReader.EOF = False And rsReader.BOF = False)
        CmbReaderid.AddItem rsReader.Fields("readerid").Value, i
        rsReader.MoveNext
        i = i + 1
    Wend
    CmbReaderid.Text = CmbReaderid.List(0)
    rsReader.MoveFirst  '记录指针复位
    helpme.Caption = "图书查询过程:" + vbCrLf + "先选择按什么方式查询," + vbCrLf + "再将你所查询之书的信息填写一下。" + vbCrLf + "按给我搜按钮即可" + vbCrLf + "读者查询过程:" + vbCrLf + "将你的读者号和密码信息填写一下。" + vbCrLf + "按给我搜按钮即可"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    主界面.Show
End Sub

Private Sub OK_Click()
    On Error GoTo ERR
    Dim YesOrNo As Boolean                                              '密码是否正确标志
    
    Dim rsReader As ADODB.Recordset
    Dim rsReaderInfo As ADODB.Recordset
    
    If de.Libarary.State = 0 Then de.Libarary.Open                      '打开数据库和记录集
    If de.rsReader.State = 0 Then de.reader
    If de.rsReaderInfo.State = 0 Then de.ReaderInfo
    
    Set rsReader = de.rsReader
    Set rsReaderInfo = de.rsReaderInfo
    
'    rsReader.Filter = "readerid = '" + Trim(cmbReaderid.Text) + "' and " + " password = '" + Trim(TxtPwd) + "'"
    
'    rsReader.Filter = "readerid = " + cmbReaderid + " and " + " password = " + TxtPwd
        
        
'    Do While (Not de.rsReader.EOF)                                      '判断密码是否正确
'        If CmbReaderid.Text = de.rsReader.Fields(0).Value Then
'            If Text4.Text = de.rsReader.Fields(1).Value Then
'                YesOrNo = True
'            Else
'                YesOrNo = False
'            End If
'
'            Exit Do
'        Else
'                de.rsReader.MoveNext
'        End If
'    Loop

    '读者号未输入
    If Trim(CmbReaderid.Text) = "" Then MsgBox "请输入读者号": CmbReaderid.SetFocus: ERR.Raise 3001
    '读者号不存在
    rsReader.Filter = "readerid = '" + Trim(CmbReaderid.Text) + "'"
    If rsReader.RecordCount = 0 Then MsgBox "此读者不存在": CmbReaderid.SetFocus: ERR.Raise 3001
    '读者号与密码不匹配
    rsReader.Filter = "readerid = '" + Trim(CmbReaderid.Text) + "' and " + " password = '" + Trim(TxtPwd) + "'"
    If de.rsReader.RecordCount = 0 Then MsgBox "此读者号与密码不匹配或密码不正确": TxtPwd.SetFocus: ERR.Raise 3001
    '终于可以显示了
    rsReaderInfo.Filter = "readerid = '" + Trim(CmbReaderid.Text) + "'"
    读者查询结果.Show
'    If de.rsreader.EOF Then
'        MsgBox "无此读者信息"
'    Else
'        If YesOrNo = False Then                                         '密码正确与否的处理
'            MsgBox "密码不正确"
'        Else
'            de.rsReaderInfo.Filter = de.rsReaderInfo.Fields(0).Name & " = " & CmbReaderid.Text
'            读者查询结果.Show vbModal
'        End If
'    End If

    de.rsReader.MoveFirst
    Exit Sub
ERR:
    If ERR.Number = 3001 Then Exit Sub
End Sub

Private Sub Return_Click()
    Unload Me
'    主界面.Show        当执行UNLOAD ME 时,UNLOAD ME 过程中有个主界面.Show
End Sub

Private Sub Return1_Click()
    Unload Me
End Sub

'后方一致还有问题
'只有两个复合查询
Private Sub search_Click()
    On Error GoTo ErrLoc
    'Dim strsql As String
    'Dim rst As New ADODB.Recordset
    Dim i1      As Integer                                      '第一个选择字段的号码
    Dim j1      As Integer                                      '第一个选择任意一致还是前方一致
    Dim str1    As String                                       '第一个任意一致还是前方一致的具体字符串
    Dim i2      As Integer                                      '第二个选择字段的号码
    Dim j2      As Integer                                      '第二个任意一致还是前方一致
    Dim str2    As String                                       '第二个任意一致还是前方一致的具体字符串
    Dim k       As Integer                                      '确定与、或、非
    Dim strsel  As String                                       '确定与、或、非的字符串
    
    i1 = Combo1.ListIndex                                       '取值
    i2 = Combo4.ListIndex
    j1 = Combo3.ListIndex
    j2 = Combo5.ListIndex
    k = Combo2.ListIndex
    
    If i1 = -1 Then i1 = 1                                      '如果未按,将其改为默认值
    If j1 = -1 Then j1 = 0
    If i2 = -1 Then i2 = 1
    If j2 = -1 Then j2 = 0
    If k = -1 Then k = 0
    
    If de.Libarary.State = 0 Then de.Libarary.Open              '如果未打开,则打开数据库
    If de.rsBookInfo.State = 0 Then de.rsBookInfo.Open
    
    '空格不能忘!!!!
    Select Case j1                                              '根据具体的值,转化成具体的字符串
        Case 0:                                                 '任意一致
                str1 = "  like  " & "'" & "*" & Trim(Text1.Text) & "*" & "'"
        Case 1:                                                 '前方一致
                str1 = "  like  " & "'" & Trim(Text1.Text) & "*" & "'"
'        Case 2:                                                 '后方一致
'                str1 = "  like  " & "'" & "*" & Trim(Text1.Text) & "'"
        Case 2:                                                 '等于
                str1 = "  = " & "'" & Trim(Text1.Text) & "'"
    End Select
    
    Select Case j2                                              '根据具体的值,转化成具体的字符串
        Case 0:                                                 '任意一致
                str2 = "  like  " & "'" & "*" & Trim(Text2.Text) & "*" & "'"
        Case 1:                                                 '前方一致
                str2 = "  like  " & "'" & Trim(Text2.Text) & "*" & "'"
'        Case 2:                                                 '后方一致
'                str2 = "  like  " & "'" & "*" & Trim(Text2.Text) & "'"
        Case 2:                                                 '等于
                str2 = "  = " & "'" & Trim(Text2.Text) & "'"
    End Select
    
    Select Case k                                               '根据具体的值,转化成具体的字符串
        Case 0:
                strsel = ""
        Case 1:
                strsel = " and "
        Case 2:
                strsel = " or "
'        Case 3:
'                strsel = " not "
    End Select
    
    If Trim(Text1.Text) = "" Then                               '没有输入数据,则先输入字符串
        MsgBox "请先输入字符串"
    Else                                                        '获取查询语句,显示查询结果
        If Trim(Text2.Text) = "" Or Combo5.Text = "无其他条件" Then     '单查询条件
            de.rsBookInfo.Filter = de.rsBookInfo.Fields(i1).Name & str1
          
        Else                                                           '双查询条件
            de.rsBookInfo.Filter = de.rsBookInfo.Fields(i1).Name & str1 & strsel & _
                               de.rsBookInfo.Fields(i2).Name & str2
        End If
        查询结果.Show vbModal
    End If

    Exit Sub
ErrLoc:
    Debug.Print ERR.Number & ERR.Description
    'Resume                                             '加上会死循环
End Sub

'    x = rst.RecordCount
'    y = rst.Fields.Count
'    ReDim qry(x - 1, y - 1) As String '从0开始(行数和列数)
'    许萦英同学:
'    其实你遇到的这种错误:“Either BOF or EOF is True”
'    是查询不到结果的情况。
'    请不要惊慌! 听从党的安排! 听从政府的号召!
'    While rst.BOF = False And rst.EOF = False
'        For i = 0 To x - 1
'            For j = 0 To y - 1
'                查询结果.qry(i, j) = rst.Fields(j).Value
'            Next
'            rst.MoveNext
'        Next
'    Wend

Private Sub SSTab1_DblClick()

End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -