Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur d'execution '424' : Objet requis

2 réponses
Avatar
medacide
Bonjour,

J'essais de faire une recherche dans Access =E0 partir de Excel, pour un
crit=E8re indiqu=E9 dans une bo=EEte de dialogue(inputbox), et affiche le
r=E9sutat de cette recherche dans une autre feuille excel.
=C0 la ligne Set DB_CLLI =3D DB.OpenRecordset("rechercheCLLI",
dbOpenDynaset) j'obtiens l'errreur.

Voici mon code:
Sub DB_CLLI1()

'A METTRE EN DEBUT DE CHAQUE PROCEDURE
On Error GoTo ErrPtnr_OnError

Dim session As Workspace
Dim DB As Database
Dim DB_CLLI As Recordset
Dim Requete As QueryDef

Set session =3D DBEngine.Workspaces(0)
Set DB =3D session.OpenDatabase(ThisWorkbook.Path & "\cellular.mdb")
' Set Requete =3D DB.CreateQueryDef("chercheCLLI")
' la requ=E8te doit =EAtre cr=E9=E9e avant la premi=E8re utilisation
' pour simplifier la proc=E9dure cette cr=E9ation est manuelle

Set Requete =3D DB.QueryDefs("chercheCLLI")
no =3D InputBox("Le CLLI S.V.P.")
If Len(no) <> 11 Then 'Clli doit =EAtre compos=E9 de 11 caract=E8res
MsgBox "Le [" & no & "] n'est pas un CLLI valide.",
vbInformation, "CLLI"
DB.Close
Exit Sub
End If
Requete.Sql =3D "SELECT * FROM cellular WHERE [POI CLLI] =3D " & no &
";"
Set DB_CLLI =3D DB.OpenRecordset("rechercheCLLI", dbOpenDynaset)
If DB_CLLI.EOF Then 'Pas de donn=E9es pour ce CLLI
MsgBox "Le CLLI [" & no & "] n'a pas de donn=E9es.",
vbInformation, "CLLI"
DB_CLLI.Close
DB.Close
Exit Sub
End If
DB_CLLI.MoveLast
DB_CLLI.MoveFirst
Range("A2:M2").ClearContents

For x =3D 1 To DB_CLLI.RecordCount
Worksheets("R=E9sultats").Cells(x + 1, 1).Value =3D
DB_CLLI.Fields("NPA").Value
Worksheets("R=E9sultats").Cells(x + 1, 2).Value =3D
DB_CLLI.Fields("LOCATION").Value
Worksheets("R=E9sultats").Cells(x + 1, 3).Value =3D
DB_CLLI.Fields("BELL CLLI").Value
Worksheets("R=E9sultats").Cells(x + 1, 4).Value =3D
DB_CLLI.Fields("POI NAME").Value
Worksheets("R=E9sultats").Cells(x + 1, 5).Value =3D
DB_CLLI.Fields("POI CLLI").Value
Worksheets("R=E9sultats").Cells(x + 1, 6).Value =3D
DB_CLLI.Fields("NXX").Value
Worksheets("R=E9sultats").Cells(x + 1, 7).Value =3D
DB_CLLI.Fields("DED").Value
Worksheets("R=E9sultats").Cells(x + 1, 8).Value =3D
DB_CLLI.Fields("fmdn").Value
Worksheets("R=E9sultats").Cells(x + 1, 9).Value =3D
DB_CLLI.Fields("todn").Value
Worksheets("R=E9sultats").Cells(x + 1, 10).Value =3D
DB_CLLI.Fields("COMPANY").Value
Worksheets("R=E9sultats").Cells(x + 1, 11).Value =3D
DB_CLLI.Fields("T/L").Value
Worksheets("R=E9sultats").Cells(x + 1, 12).Value =3D
DB_CLLI.Fields("STAT").Value
Worksheets("R=E9sultats").Cells(x + 1, 13).Value =3D
DB_CLLI.Fields("ACTIVE DATE").Value
Worksheets("R=E9sultats").Cells(x + 1, 14).Value =3D
DB_CLLI.Fields("REMARKS").Value
Worksheets("R=E9sultats").Cells(x + 1, 15).Value =3D
DB_CLLI.Fields("Activity").Value
Worksheets("R=E9sultats").Cells(x + 1, 16).Value =3D
DB_CLLI.Fields("ISSUE DATE").Value
Worksheets("R=E9sultats").Cells(x + 1, 17).Value =3D
DB_CLLI.Fields("DUE DATE").Value

DB_CLLI.MoveNext 'Affiche les donn=E9es suivantes pour le m=EAme
clli
Next x
DB_CLLI.Close
DB.Close
Exit Sub
ErrPtnr_OnError:
Select Case ErrPtnr.OnError("frmMain", "Command1")
Case 0: Resume
Case 1: Resume Next
Case 2: Exit Sub
Case 3: End
End Select
End Sub

Merci pour votre aide.

2 réponses

Avatar
medacide
J'ai trouvé la réponse....
Avatar
mich
"medacide" a écrit dans le message de news:

Bonjour,

J'essais de faire une recherche dans Access à partir de Excel, pour un
critère indiqué dans une boîte de dialogue(inputbox), et affiche le
résutat de cette recherche dans une autre feuille excel.
À la ligne Set DB_CLLI = DB.OpenRecordset("rechercheCLLI",
dbOpenDynaset) j'obtiens l'errreur.

Voici mon code:
Sub DB_CLLI1()

'A METTRE EN DEBUT DE CHAQUE PROCEDURE
On Error GoTo ErrPtnr_OnError

Dim session As Workspace
Dim DB As Database
Dim DB_CLLI As Recordset
Dim Requete As QueryDef

Set session = DBEngine.Workspaces(0)
Set DB = session.OpenDatabase(ThisWorkbook.Path & "cellular.mdb")
' Set Requete = DB.CreateQueryDef("chercheCLLI")
' la requète doit être créée avant la première utilisation
' pour simplifier la procédure cette création est manuelle

Set Requete = DB.QueryDefs("chercheCLLI")
no = InputBox("Le CLLI S.V.P.")
If Len(no) <> 11 Then 'Clli doit être composé de 11 caractères
MsgBox "Le [" & no & "] n'est pas un CLLI valide.",
vbInformation, "CLLI"
DB.Close
Exit Sub
End If
Requete.Sql = "SELECT * FROM cellular WHERE [POI CLLI] = " & no &
";"
Set DB_CLLI = DB.OpenRecordset("rechercheCLLI", dbOpenDynaset)
If DB_CLLI.EOF Then 'Pas de données pour ce CLLI
MsgBox "Le CLLI [" & no & "] n'a pas de données.",
vbInformation, "CLLI"
DB_CLLI.Close
DB.Close
Exit Sub
End If
DB_CLLI.MoveLast
DB_CLLI.MoveFirst
Range("A2:M2").ClearContents

For x = 1 To DB_CLLI.RecordCount
Worksheets("Résultats").Cells(x + 1, 1).Value DB_CLLI.Fields("NPA").Value
Worksheets("Résultats").Cells(x + 1, 2).Value DB_CLLI.Fields("LOCATION").Value
Worksheets("Résultats").Cells(x + 1, 3).Value DB_CLLI.Fields("BELL CLLI").Value
Worksheets("Résultats").Cells(x + 1, 4).Value DB_CLLI.Fields("POI NAME").Value
Worksheets("Résultats").Cells(x + 1, 5).Value DB_CLLI.Fields("POI CLLI").Value
Worksheets("Résultats").Cells(x + 1, 6).Value DB_CLLI.Fields("NXX").Value
Worksheets("Résultats").Cells(x + 1, 7).Value DB_CLLI.Fields("DED").Value
Worksheets("Résultats").Cells(x + 1, 8).Value DB_CLLI.Fields("fmdn").Value
Worksheets("Résultats").Cells(x + 1, 9).Value DB_CLLI.Fields("todn").Value
Worksheets("Résultats").Cells(x + 1, 10).Value DB_CLLI.Fields("COMPANY").Value
Worksheets("Résultats").Cells(x + 1, 11).Value DB_CLLI.Fields("T/L").Value
Worksheets("Résultats").Cells(x + 1, 12).Value DB_CLLI.Fields("STAT").Value
Worksheets("Résultats").Cells(x + 1, 13).Value DB_CLLI.Fields("ACTIVE DATE").Value
Worksheets("Résultats").Cells(x + 1, 14).Value DB_CLLI.Fields("REMARKS").Value
Worksheets("Résultats").Cells(x + 1, 15).Value DB_CLLI.Fields("Activity").Value
Worksheets("Résultats").Cells(x + 1, 16).Value DB_CLLI.Fields("ISSUE DATE").Value
Worksheets("Résultats").Cells(x + 1, 17).Value DB_CLLI.Fields("DUE DATE").Value

DB_CLLI.MoveNext 'Affiche les données suivantes pour le même
clli
Next x
DB_CLLI.Close
DB.Close
Exit Sub
ErrPtnr_OnError:
Select Case ErrPtnr.OnError("frmMain", "Command1")
Case 0: Resume
Case 1: Resume Next
Case 2: Exit Sub
Case 3: End
End Select
End Sub

Merci pour votre aide.