0

私はmysql5.0でデータベースを作成しました。そこからデータを表示したい。login という名前のテーブルがあります。ユーザー名とパスワードの 2 つの列があります。フォームには、ユーザー名とパスワードの 2 つのテキスト フィールドがあります。データベースの値で入力を検証し、メッセージ ボックスを表示したいだけです。vb からデータベースへの接続が正常に確立されました。しかし、入力を検証していません。「オブジェクトが必要です」というエラーが表示されます。私はvbが初めてです。

私はvb6とmysql5.0を使用していますありがとう

コードは次のとおりです。

public con As ADOB.connection
public rs2 As new ADOB.Recordest

public sub preconnection()
    set con = New connection
    set rs = New recordest
    set con = New ADOB.connection
    con.connectionString = "DRIVER = {Mysql ODBC 3.51 driver};"_
                 & "SERVER = localhost;"_
                 & "DATABASE = vbtest;"_
                 & "UID = root;"_
                 & "PWD = ;"
    con.cursorLocation = 
    con.open
end sub

sql = "select *from login"
set rs = con.execute (sql)
if rs.BOF = False Then
    While Not rs.EOF
        If Ucase(txtlogin.text = trim(rs(0)) Ad txtpassword.text = Trim(rs(1)) Then
            username = rs(0)
            loginname = True

            MsgBox("welcome")
        End if
        rs.movenext
     wend
End Sub
4

3 に答える 3

2

変数rs2を宣言しましたが、どこでも使用していません。代わりに、存在しない変数rsを参照しています。

于 2010-03-19T13:04:10.967 に答える
1

コード サンプルにはいくつかの問題があります。

  • VB6 の継続規約は次のようになります。

        con.connectionString = "DRIVER = {Mysql ODBC 3.51 driver};" & _
           "SERVER = localhost;" & _
           "DATABASE = vbtest;" & _
           "UID = root;" & _
           "PWD = ;"
    
  • タイプミス: sql = "select *from login"->sql = "select * from login"

  • タイプミス: If Ucase(txtlogin.text = trim(rs(0)) Ad txtpassword.text->If Ucase(txtlogin.text = trim(rs(0)) And txtpassword.text

于 2010-03-19T13:09:53.560 に答える
0

ヒントとして、"Option Explicit" を設定すると、VB6 はいくつかのタイプミスなどを指摘するはずです。このセットを持っていなくても、存在しない変数 (rs など) を参照すると、使用するときに作成されます。

sql = "select *ログインから"

おそらく次のようになります。

sql = "select * ログインから"

おそらくsqlを宣言する必要があります。

If Ucase(txtlogin.text = trim(rs(0)) Ad txtpassword.text = Trim(rs(1)) Then

する必要があります

If Ucase(txtlogin.text = trim(rs(0)) And txtpassword.text = Trim(rs(1)) なら

また、UCASE よりも StrComp を使用する方が効率的だと思いますが、どちらも機能します。

于 2010-03-23T19:59:02.993 に答える