2009-12-07 3 views
0

I Dispose du jeu d'enregistrements rc1 qui lit les valeurs du fichier txt. Les champs sont rtn, amt, name. Maintenant, je reçois les données de la table t_rec et l'a affecté à un autre jeu d'enregistrements rc2. et comparez avec le jeu d'enregistrements rc1.Utilisation invalide de la propriété dans vb6

If rd1.Fields![AccountNbr] = rc2.Fields![RTProvided] Then 
     Set rc2.Fields![ClaimStatus] = "c" 
      rc2.Fields![DateClosed] = CqDate 
      rc2.Fields![Audit_LastUpdated] = CqDate 
      rc2.Fields![Audit_UserAdded] = "System" 

Si je compile ce programme, j'obtiens une erreur comme Utilisation invalide de la propriété dans vb6. Pouvez-vous m'aider.

Sub DneFroceClose() 

CqDate = Format(Date, "dd/MM/yyyy") 

Set rcdreclamation = New ADODB.Recordset 
With rcdreclamation 
    .ActiveConnection = objConn 
    .Source = "SELECT * FROM T_DATA_reclamation" 
    .CursorType = adOpenDynamic 
    .CursorLocation = adUseClient 
    .LockType = adLockOptimistic 
    .Open 
End With 

frmDNELoad.lblStatus.Caption = "Adding record " & lngRecCount & " of " & rcdreclamation.RecordCount & " to database." 
frmDNELoad.Refresh 

rcdDNE.Open 
rcdreclamation.Open 
rcdDNE.MoveFirst 
rcdreclamation.MoveFirst 

Do Until rcdDNE.EOF 

    Do Until rcdreclamation.EOF 

    If rcdDNE.Fields![AccountNbr] = rcdreclamation.Fields![RTProvided] Then 
     Set rcdreclamation.Fields![ClaimStatus] = "c" 
      rcdreclamation.Fields![DateClosed] = CqDate 
      rcdreclamation.Fields![Audit_LastUpdated] = CqDate 
      rcdreclamation.Fields![Audit_UserAdded] = "System" 
      Exit Do 
    Else 
    rcdreclamation.MoveNext 
    End If 

    Loop 
    rcdDNE.MoveNext 
    rcdreclamation.MoveFirst 

Loop 

End Sub 
+0

Sur quelle ligne, voyez-vous "Invalid use of property"? – shahkalpesh

+0

rcdreclamation.Fields! [ClaimStatus] = "c" dans cette ligne – pbrp

+0

et en soulignant le [ClaimStatus] – pbrp

Répondre

4

En regardant le code ci-dessus, je vois problème avec cette ligne de code

Set rc2.Fields![ClaimStatus] = "c" 

Vous n'avez pas besoin Set ici. Il aurait dû être rc2.Fields![ClaimStatus] = "c" (s'il s'agit de la ligne problématique).

EDIT: J'ai vu votre réponse à ma question. Et la même règle s'applique à la ligne en question.

Au lieu de
Set rcdreclamation.Fields![ClaimStatus] = "c"
il devrait être
rcdreclamation.Fields![ClaimStatus] = "c"

EDIT2: Set est nécessaire lorsque vous assignez à une variable d'objet, une instance d'objet ou Nothing.

EDIT3: En outre, vous pouvez écrire rcdreclamation![ClaimStatus] au lieu de rcdreclamation.Fields![ClaimStatus] pour chaque ligne de ce type.
(déni de responsabilité: J'espère avoir raison sur ma syntaxe VB6 Cela fait pas mal de temps).

+0

oui, vous avez raison. Merci de votre aide. J'ai une autre question. après la mise à jour de cette info comment enregistrer les données que j'ai modifiées dans la table sql? – pbrp

+0

S'il vous plaît mettez en mots simples, ce que vous essayez de faire? Essayez-vous de lire un fichier texte (CSV, séparé par une tabulation) et de vouloir insérer ces enregistrements dans une base de données SQL? – shahkalpesh

+0

Non, je l'ai déjà fait. Je lis le fichier texte et insère ces valeurs dans une table tb1. Maintenant, je veux comparer les valeurs de tb1 avec une autre table tb2. si tb1.rt1 = tb2.rt2 alors cstatus = c, date = maintenant. Après cela, comment mettre à jour ces valeurs dans la table2. J'espère que tu as mon point de vue. Si ce n'est pas le cas, faites-le moi savoir, je vais vous expliquer clairement. – pbrp

Questions connexes