2011-03-06 6 views
0

Je fais un système de point de vente pour un de mes amis, réel petit et simple.besoin d'aide avec ADO en VB6

Quasiment tout est codé en ce moment, sauf et vue inventaire

Je suis en train de faire en sorte quand il clique sur un bouton, il va charger dans un listview les codes UPC et le nom associé à ce UPC. Je suis novice en programmation et j'essaie de le faire moi-même. Je sais que j'ai besoin d'obtenir un certain nombre d'éléments dans la base de données (combien d'UPC) et ensuite faire une boucle en ajoutant des informations dans un listview.

mais j'ai du mal à obtenir le nombre de lignes dans la base de données pour commencer et terminer une boucle

+1

Une bonne chose dépend si vous utilisez des objets DAO ou ADO pour l'accès à la base de données. Nous dire cela va probablement produire une réponse plus ciblée pour vous. En général, les jeux d'enregistrements ont une propriété RecordCount qui peut être utilisée en fonction du type de curseur que vous avez demandé. Vous pouvez également faire des requêtes Count (*) pour obtenir le nombre d'enregistrements. – Bob77

+0

Désolé, je vois le titre dit ADO dedans. – Bob77

Répondre

1

Ce serait plus facile si vous avez publié une partie de votre code, pour que nous puissions voir ce que vous commencez avec. Cependant, vous devriez être capable de faire quelque chose comme ceci (Mon VB/ADO est rouillé, donc je pourrais souffler un peu la syntaxe.) Comme Chris le note plus haut, VB6 devient un peu long dans la dent ....) . Dans la plupart des cas, vous ne devriez pas besoin de savoir combien d'enregistrements sont retournés afin de peupler votre listView - Il suffit d'utiliser un « Do Until » Loop comme suit:

Public Sub LoadListview() 
    Dim cn As ADODB.Connection 
    Dim rs As ADODB.Recordset 

    Dim SQL As String 
    SQL = _ 
     "SELECT . . . " & _ 
     "FROM . . . " & _ 
     "WHERE . . . " 

    Set cn = New ADODB.Connection 

    With cn 
     .Provider = "Microsoft.Jet.OLEDB.4.0" 
     .ConnectionString = "YourConnectionString" 
     .Open 
    End With 

    Set rs = New ADODB.Recordset 

    rs.Open SQL, cn, adOpenForwardOnly, adLockReadOnly 

    With rs 
     If Not .EOF Then 
      Do Until .EOF 
       ' Your code to populate your ListView Here 
      .MoveNext 
      Loop 
     End If 
    End With 

    rs.Close 
    cn.Close 

     Set rs = Nothing 
    Set cn = Nothing 

End Sub 

Notez que j'ai simplifié les choses ici un peu. en réalité, si vous passez des critères dans la clause WHERE, vous devez généralement utiliser PARAMETERS avec un objet ADODB.Command. Je n'ai pas inclus une commande ADODB.Command dans cet exemple.

+0

Voici un exemple de la façon dont im codage, votre code est très complexe pour moi de comprendre – enko

+0

'Dim rs As New ADODB.Recordset rs.Open "tblitem", con, adOpenDynamic, adLockPessimistic rs.MoveLast x = rs .Fields ("itemcode") + 1 Text1.Text = x' c'est juste moi essayant d'obtenir le nombre de lignes dans la base de données – enko

+2

@enko: Hmm, ce n'est pas complexe. Si vous ne comprenez pas cela, vous allez être complètement perdu en essayant d'écrire le reste de l'application dans VB 6. Je suggère de prendre un livre qui vous apprend à programmer dans la langue. Et, comme d'autres l'ont suggéré, si vous n'avez aucune expérience antérieure avec VB 6, il vaut mieux commencer par une autre langue, plus moderne. VB.NET ou C# sont de bons choix pour l'interaction avec la base de données. –

Questions connexes