encore une erreur a la con

encore une erreur a la con - VB/VBA/VBS - Programmation

Marsh Posté le 26-05-2003 à 17:28:16    

bonjour a tous,
 
j'ai (encore) un petit probleme avec un bout de code en vba, auquel j'arrive pas a trouver de solution
 
il me donne comme erreur: erreur 424: objet requis
 
je vous met le code en entier, mais c'est plutot vers le debut que ca plante
 
 
----------------------------------
Dim idc As String
Dim req As String
Dim total As Double
Dim bd As Database
Dim rec1 As Recordset
Dim rec2 As Recordset
Dim rec3 As Recordset
Dim rec4 As Recordset
----------------------------------
Sub main()
    Set db = CurrentDb
    db.Execute ("update composant set prixRec=null" )
    Set rec1 = db.OpenRecordset("select * from composant", dbOpenSnapshot)
     
    Do While Not rec1.EOF
        fixerPrixRec (rec1.Fields("code_com" ))
        rec1.MoveNext
    Loop
End Sub
------------------------------
  Function fixerPrixRec(id As String) As Double
    req = "select * from composant where code_com='" & id & "'"
    Set rec2 = db.OpenRecordset(req, dbOpenSnapshot)    
<--------- c'est ici qu'il me sort l'erreur
    req = "select * from est_compose_1 where code_com_1='" & id & "'"
    Set rec3 = db.OpenRecordset(req, dbOpenSnapshot)
     
    If (IsNull(rec3)) Then
        db.Execute ("update composant set prixRec=prix where code_com='" & id & "'" )
        fixerPrixRec = rec3.Fields("prix" )
        Exit Function
    Else
        total = 0
        total = total + rec2.Fields("prix" )
        Do While Not rec3.EOF
            idc = rec3.Fields("code_com_2" )
            Set rec4 = db.OpenRecordset("select * from composant where code_com='" & idc & "'", dbOpenSnapshot)
            If IsNull(rec4.Fields(prixRec)) Then
                total = total + fixerPrixRec(idc)
            Else
                total = total + rec4.Fields("prixRec" )
            End If
            rec3.MoveNext
        Loop
        db.Execute ("update composant set prixRec='" & total & "';" )
        fixerPrixRec = total
        Exit Function
    End If
End Function
-------------------------
     
 
 
si quelqu'un pouvait me trouver ca ca m'arrangerait pas mal :)            
         
         
         

Reply

Marsh Posté le 26-05-2003 à 17:28:16   

Reply

Marsh Posté le 26-05-2003 à 17:30:39    

c'est tout con effectivement, ta variable db est déclarée dans Main, réduisant sa visibilité à la seule fonction Main.  Tu ne peux donc pas l'employer dans la fonction qui suit car db est une variable qui lui est inconnue.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 26-05-2003 à 18:04:34    

Ecris en noire, c'est mieux !   :p

Reply

Marsh Posté le 26-05-2003 à 22:09:27    

tu as confondu bd et db
donc vb ne sort pas d'erreur mais la base n'est ouverte que dans main

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed