注册 登录
编程论坛 VB6论坛

根据一列的值控制另一列的显示

opelwang 发布于 2017-08-22 21:58, 2137 次点击

VB操作ACCESS,在已经打开数据库的条件下,如何判断:

只有本站会员才能查看附件,请 登录


如果系统当前登录用户: VBA.Environ("username"),在数据库LogUser字段中存在,

则窗体combo1列表框显示,数据库Username字段所对应的值。否则窗体combo1显示空值。


该如何表示,求解,谢谢!
5 回复
#2
ZHRXJR2017-08-24 11:20
不太明白你的意思,是不是这样的:
程序代码:

'cn连接数据库语句略
SQL1 = "Select * Fron UserInfo Where Username<>"" And LogUser<>"""
RS.Open SQL1,cn,2,2
DO While Not RS.EOF
Combo1.AddItem RS("Username")
RS.MoveNext
Loop
RS.Close
cn.Close
#3
opelwang2017-08-24 13:07
回复 2楼 ZHRXJR
完整的代码是这样的,但还是报错:
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

程序代码:
Private Sub Form_Load()

'  Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\UIuser.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
    Dim Scnn As Object, Srt As Object, use As String
    use = VBA.Environ("username")
    Combo1.Text = ""

    Set Scnn = New ADODB.Connection
    Scnn.CursorLocation = adUseClient
    Scnn.Open "Provider=Microsoft.jet.oledb.4.0;Data source=" & App.Path & "\UIuser.mdb"

    Set Srt = New ADODB.Recordset
    Set Srt.ActiveConnection = Scnn

    Srt.Open "select * from UserInfo"
    Do Until Srt.EOF
        Combo1.AddItem Srt.Fields("Username").Value
        Srt.MoveNext
    Loop
    Srt.Close

    'cn连接数据库语句略
    SQL1 = "Select * Fron UserInfo Where Username<>"" And LogUser<>"""
    Srt.Open SQL1, Scnn, 2, 2
    Do While Not Srt.EOF
        Combo1.AddItem Srt("Username")
        Srt.MoveNext
    Loop
    Srt.Close
    Scnn.Close

    '    Srt.Close
    '    Set Srt = Nothing


End Sub


[此贴子已经被作者于2017-8-24 13:09编辑过]

#4
ZHRXJR2017-08-24 22:39
回复 opelwang
SQL1 = "Select * Fron UserInfo Where Username<>'' And LogUser<>''"
前面的SQL语句有错误,应该是英语单引号,不是双引号。
#5
opelwang2017-08-24 22:58
以下是引用ZHRXJR在2017-8-24 22:39:41的发言:

回复 opelwang
SQL1 = "Select * Fron UserInfo Where Username<>'' And LogUser<>''"
前面的SQL语句有错误,应该是英语单引号,不是双引号。



还是不行,报错:
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录






[此贴子已经被作者于2017-8-25 00:30编辑过]

#6
ZHRXJR2017-08-24 23:27
二个问题,第一,ADO对象没有设置,需要在引用中添加:
只有本站会员才能查看附件,请 登录
。第二,SQL语句有问题
程序代码:
Dim Scnn As New ADODB.Connection, Srt As New ADODB.Recordset   'ADO对象声明
    Combo1.Clear
    Combo1.Text = ""
    Scnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\UIuser.mdb;Persist Security Info=False"
    SQL1 = "Select * From UserInfo Where Username<>'' And LogUser<>''"    'From 错误打成了 Fron
    Srt.Open SQL1, Scnn, 2, 2
    Do While Not Srt.EOF
        Combo1.AddItem Srt("Username")
        Srt.MoveNext
    Loop
    Srt.Close
    Scnn.Close

已经运行过了,没有问题。
1