2010-03-19 8 views
0

J'ai créé une base de données dans mysql5.0. je veux afficher les données de celui-ci. il a une table nommée login. il a 2 colonnes nom d'utilisateur et mot de passe. sous la forme j'ai 2 champs de texte nom d'utilisateur et mot de passe je veux juste valider l'entrée avec les valeurs de base de données et afficher la boîte de message. la connexion de vb à la base de données est établie avec succès. mais son entrée ne valide pas. son erreur donnant comme «objet requis». s'il vous plaît tout le corps aide je suis nouveau à vb.vb6 affichant le problème

J'utilise VB6 et MySQL5.0 merci

Code

est:

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 
+0

les deux fonctionneront quelle ligne vous donne l'erreur ? –

Répondre

2

Vous avez déclaré un variables RS2 mais vous ne l'utilisez pas partout; à la place, vous faites référence tout au long d'une variable non-existante rs

1

Il y a quelques problèmes avec votre exemple de code:

  • convention de continuation en VB6 est comme ceci:

    con.connectionString = "DRIVER = {Mysql ODBC 3.51 driver};" & _ 
         "SERVER = localhost;" & _ 
         "DATABASE = vbtest;" & _ 
         "UID = root;" & _ 
         "PWD = ;" 
    
  • faute de frappe: sql = "select *from login" ->sql = "select * from login"

  • ty po: If Ucase(txtlogin.text = trim(rs(0)) Ad txtpassword.text ->If Ucase(txtlogin.text = trim(rs(0)) And txtpassword.text

0

En tant que conseil, si vous réglez "Option Explicit", VB6 doit signaler quelques-unes des fautes de frappe, etc pour vous. Si vous ne possédez pas cet ensemble, mais que vous faites référence à une variable inexistante (comme rs), il sera simplement créé pour vous lorsque vous l'utiliserez.

sql = "select * from login"

devrait probablement être:

sql = "select * from login"

Vous devriez probablement déclarer sql.

Si Ucase (txtlogin.text = trim (rs (0)) = Ad txtPassword.Text trim (rs (1)) Alors

doivent être

Si Ucase (txtlogin.text = trim (rs (0)) Et txtPassword.Text = trim (rs (1)) Puis

, je pense aussi qu'il est plus efficace d'utiliser StrComp que UCASE -. bien que