Dim DbStr As StringPrivate 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 SubPrivate 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[特长]=" + Combo3.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.MoveFirstEnd SubPrivate Sub Command2_Click()
Unload Form1
End SubPrivate Sub form_load()
Dim I, Result As Integer
Combo1.Enabled = False
Combo2.Enabled = False
Combo3.Enabled = False
Combo1.Clear
Combo2.Clear
Combo3.Clear
Combo1.AddItem "男"
Combo1.AddItem "女"
Combo2.AddItem "党员"
Combo2.AddItem "团员"
Combo2.AddItem "群众"
Combo3.AddItem "计算机"
Combo3.AddItem "篮球"
Combo3.AddItem "美术"
Combo3.AddItem "文艺"
Combo3.AddItem "跳舞"
Combo3.AddItem "棋牌"
DbStr = "select*from db 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
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.MoveFirstEnd Sub代码如上。。
出现这样的问题syntax error(missing operator) in query expression"[姓名]=[姓名]and[性别]=男and[政治面貌]=党员"
请问大家这是什么问题呢。。

解决方案 »

  1.   

    姓名]=[姓名]and[性别]=男and[政治面貌]=党员
    单词字段之间少空格,全连在一块了...
      

  2.   

    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 [特长]=" + Combo3.Text + " " 
    End If 如上,3个and之前之后都要加空格,3个引号里最好也加上空格
      

  3.   

    加了空格之后出现这样的too few parameter.expected 3,
      

  4.   

    你在Data1.RecordSource = DbStr 这一句之前加一句:MsgBox DbStr然后把显示出来的值,拷贝到这里看看
      

  5.   

    另外 DbStr 在哪里声明的?怎样声明的?
      

  6.   

    Dim DbStr As String
    这个不是在第一行就声明了吗???
    出现select*from db where [姓名]=[姓名] [性别]=男 [政治面貌]=团员 [特长]=计算机
    之后还是之前的问题
      

  7.   

    少空格、少标点、少and.
    修正你的语句,把最后打印出来DbStr该成这样应该就可以了:你的原句:select*from db where [姓名]=[姓名] [性别]=男 [政治面貌]=团员 [特长]=计算机
    修改后  :select * from db where [姓名]=[姓名] and [性别]='男'  and [政治面貌]='团员' and [特长]='计算机'