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

access 97>>2k

5 réponses
Avatar
Guy
J'ai ce code dans ma dase de donnée.
j'ai une erreur o niveau du ".sql" membre de methode ou donné introuvable

si quelqu'un sai comme faire reconetre .sql par access merci
Merci


Sub Requete_LH2_N1()

Dim MaBD As Database, MaRequête As QueryDef
Dim ListeReq As Recordset
Dim ReqSql As String, Critère As String
Dim F As Forms
Dim Premier

On Error GoTo ErreurRequete_LH2_N1

Set F = Forms![F_ModifOffres]
Premier = True
Set MaBD = CurrentDb
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Set ListeReq = MaBD.OpenRecordset("T_Requetes", dbOpenSnapshot)

Critère = "([N°Requete] = 16)"

ListeReq.FindFirst Critère

ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur


If Not (IsNull(F![ch client])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
End If
ReqSql = ReqSql & "(TO_Offres.[N°Client]=" & F![ch client] & ")"
End If

If Not (IsNull(F![ch Commercial])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[N°Commercial]=" & F![ch Commercial] & ")"
End If

If Not (IsNull(F![ch DateMin])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]>=#" & Format(F![ch DateMin],
"m/d/yyyy") & "#)"
End If

If Not (IsNull(F![ch DateMax])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]<=#" & Format(F![ch DateMax],
"m/d/yyyy") & "#)"
End If
' MsgBox premier
If Not (Premier) Then ReqSql = ReqSql & ")" & Alaligne()

ReqSql = ReqSql & "ORDER BY TO_Offres.[N°Offre] desc, TO_Offres.[Revision
Offre], TO_Offres.NomMachine;"


MaRequête.SQL = ReqSql


Exit Sub

ErreurRequete_LH2_N1:
MaBD.DeleteQueryDef "RLH2_Niv1"
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Resume Next

End Sub

5 réponses

Avatar
Pierre CFI [mvp]
bonjour
d'ou sort cette fonction Alaligne()

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Guy" a écrit dans le message de news:
J'ai ce code dans ma dase de donnée.
j'ai une erreur o niveau du ".sql" membre de methode ou donné introuvable

si quelqu'un sai comme faire reconetre .sql par access merci
Merci


Sub Requete_LH2_N1()

Dim MaBD As Database, MaRequête As QueryDef
Dim ListeReq As Recordset
Dim ReqSql As String, Critère As String
Dim F As Forms
Dim Premier

On Error GoTo ErreurRequete_LH2_N1

Set F = Forms![F_ModifOffres]
Premier = True
Set MaBD = CurrentDb
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Set ListeReq = MaBD.OpenRecordset("T_Requetes", dbOpenSnapshot)

Critère = "([N°Requete] = 16)"

ListeReq.FindFirst Critère

ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur


If Not (IsNull(F![ch client])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
End If
ReqSql = ReqSql & "(TO_Offres.[N°Client]=" & F![ch client] & ")"
End If

If Not (IsNull(F![ch Commercial])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[N°Commercial]=" & F![ch Commercial] & ")"
End If

If Not (IsNull(F![ch DateMin])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]>=#" & Format(F![ch DateMin],
"m/d/yyyy") & "#)"
End If

If Not (IsNull(F![ch DateMax])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]<=#" & Format(F![ch DateMax],
"m/d/yyyy") & "#)"
End If
' MsgBox premier
If Not (Premier) Then ReqSql = ReqSql & ")" & Alaligne()

ReqSql = ReqSql & "ORDER BY TO_Offres.[N°Offre] desc, TO_Offres.[Revision
Offre], TO_Offres.NomMachine;"


MaRequête.SQL = ReqSql


Exit Sub

ErreurRequete_LH2_N1:
MaBD.DeleteQueryDef "RLH2_Niv1"
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Resume Next

End Sub




Avatar
Raymond [mvp]
Bonjour.

il faut compléter tes fonctions.

Dim MaBD As DAO.Database, MaRequête As DAO.QueryDef
Dim ListeReq As DAO.Recordset

dans les références, alt+F11, outils/références
cocher la référence microsoft DAO3.6 et la placer avant toutes les
références éventuelles à ADO (Activex Data Objects)

quant à >ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur
Alaligne est quel type de fonction ? qui se trouve où ?
ListeReq étant un recordset tu ne peux pas utiliser la propriété SQL. Il
faudrait que ListeReq soit un QueryDef pour récupérer le SQL.

voici quelques lignes de réflexion.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guy" a écrit dans le message de news:

J'ai ce code dans ma dase de donnée.
j'ai une erreur o niveau du ".sql" membre de methode ou donné introuvable

si quelqu'un sai comme faire reconetre .sql par access merci
Merci


Sub Requete_LH2_N1()

Dim MaBD As Database, MaRequête As QueryDef
Dim ListeReq As Recordset
Dim ReqSql As String, Critère As String
Dim F As Forms
Dim Premier

On Error GoTo ErreurRequete_LH2_N1

Set F = Forms![F_ModifOffres]
Premier = True
Set MaBD = CurrentDb
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Set ListeReq = MaBD.OpenRecordset("T_Requetes", dbOpenSnapshot)

Critère = "([N°Requete] = 16)"

ListeReq.FindFirst Critère

ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur


If Not (IsNull(F![ch client])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
End If
ReqSql = ReqSql & "(TO_Offres.[N°Client]=" & F![ch client] & ")"
End If

If Not (IsNull(F![ch Commercial])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[N°Commercial]=" & F![ch Commercial] &
")"
End If

If Not (IsNull(F![ch DateMin])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]>=#" & Format(F![ch DateMin],
"m/d/yyyy") & "#)"
End If

If Not (IsNull(F![ch DateMax])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]<=#" & Format(F![ch DateMax],
"m/d/yyyy") & "#)"
End If
' MsgBox premier
If Not (Premier) Then ReqSql = ReqSql & ")" & Alaligne()

ReqSql = ReqSql & "ORDER BY TO_Offres.[N°Offre] desc, TO_Offres.[Revision
Offre], TO_Offres.NomMachine;"


MaRequête.SQL = ReqSql


Exit Sub

ErreurRequete_LH2_N1:
MaBD.DeleteQueryDef "RLH2_Niv1"
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Resume Next

End Sub




Avatar
Guy
alaligne() est une fonction ki est ds le meme module que ce code


(g pas mi tt le module, ca serai trop long)

merci
Avatar
Guy
oui c fai , si je met reqsql en querydef ca marche mais c une erreur a la
ligne du dessu car .findfirst n'est alors plus reconu (mais ca marche avec
recordset). y a t'il une fonction equivalente a findfirst en utilisant un
querydef?

mecri

"Raymond [mvp]" wrote:

Bonjour.

il faut compléter tes fonctions.

Dim MaBD As DAO.Database, MaRequête As DAO.QueryDef
Dim ListeReq As DAO.Recordset

dans les références, alt+F11, outils/références
cocher la référence microsoft DAO3.6 et la placer avant toutes les
références éventuelles à ADO (Activex Data Objects)

quant à >ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur
Alaligne est quel type de fonction ? qui se trouve où ?
ListeReq étant un recordset tu ne peux pas utiliser la propriété SQL. Il
faudrait que ListeReq soit un QueryDef pour récupérer le SQL.

voici quelques lignes de réflexion.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guy" a écrit dans le message de news:

J'ai ce code dans ma dase de donnée.
j'ai une erreur o niveau du ".sql" membre de methode ou donné introuvable

si quelqu'un sai comme faire reconetre .sql par access merci
Merci


Sub Requete_LH2_N1()

Dim MaBD As Database, MaRequête As QueryDef
Dim ListeReq As Recordset
Dim ReqSql As String, Critère As String
Dim F As Forms
Dim Premier

On Error GoTo ErreurRequete_LH2_N1

Set F = Forms![F_ModifOffres]
Premier = True
Set MaBD = CurrentDb
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Set ListeReq = MaBD.OpenRecordset("T_Requetes", dbOpenSnapshot)

Critère = "([N°Requete] = 16)"

ListeReq.FindFirst Critère

ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur


If Not (IsNull(F![ch client])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
End If
ReqSql = ReqSql & "(TO_Offres.[N°Client]=" & F![ch client] & ")"
End If

If Not (IsNull(F![ch Commercial])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[N°Commercial]=" & F![ch Commercial] &
")"
End If

If Not (IsNull(F![ch DateMin])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]>=#" & Format(F![ch DateMin],
"m/d/yyyy") & "#)"
End If

If Not (IsNull(F![ch DateMax])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]<=#" & Format(F![ch DateMax],
"m/d/yyyy") & "#)"
End If
' MsgBox premier
If Not (Premier) Then ReqSql = ReqSql & ")" & Alaligne()

ReqSql = ReqSql & "ORDER BY TO_Offres.[N°Offre] desc, TO_Offres.[Revision
Offre], TO_Offres.NomMachine;"


MaRequête.SQL = ReqSql


Exit Sub

ErreurRequete_LH2_N1:
MaBD.DeleteQueryDef "RLH2_Niv1"
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la requête.
Resume Next

End Sub









Avatar
Raymond [mvp]
Il te faut définir les deux c'est plus simple, une querydef pour les
structures et un recordset pour le traitement des données. Ou faire un
openrecordset sur le querydef. tu trouveras tous les exemples sur la page :
http://officesystem.access.free.fr/vba/execution_standard.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guy" a écrit dans le message de news:

oui c fai , si je met reqsql en querydef ca marche mais c une erreur a la
ligne du dessu car .findfirst n'est alors plus reconu (mais ca marche
avec
recordset). y a t'il une fonction equivalente a findfirst en utilisant un
querydef?

mecri

"Raymond [mvp]" wrote:

Bonjour.

il faut compléter tes fonctions.

Dim MaBD As DAO.Database, MaRequête As DAO.QueryDef
Dim ListeReq As DAO.Recordset

dans les références, alt+F11, outils/références
cocher la référence microsoft DAO3.6 et la placer avant toutes les
références éventuelles à ADO (Activex Data Objects)

quant à >ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur
Alaligne est quel type de fonction ? qui se trouve où ?
ListeReq étant un recordset tu ne peux pas utiliser la propriété SQL. Il
faudrait que ListeReq soit un QueryDef pour récupérer le SQL.

voici quelques lignes de réflexion.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guy" a écrit dans le message de news:

J'ai ce code dans ma dase de donnée.
j'ai une erreur o niveau du ".sql" membre de methode ou donné
introuvable

si quelqu'un sai comme faire reconetre .sql par access merci
Merci


Sub Requete_LH2_N1()

Dim MaBD As Database, MaRequête As QueryDef
Dim ListeReq As Recordset
Dim ReqSql As String, Critère As String
Dim F As Forms
Dim Premier

On Error GoTo ErreurRequete_LH2_N1

Set F = Forms![F_ModifOffres]
Premier = True
Set MaBD = CurrentDb
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la
requête.
Set ListeReq = MaBD.OpenRecordset("T_Requetes", dbOpenSnapshot)

Critère = "([N°Requete] = 16)"

ListeReq.FindFirst Critère

ReqSql = ListeReq.SQL & Alaligne() <<<<<<<<<<<<<<Ereur


If Not (IsNull(F![ch client])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
End If
ReqSql = ReqSql & "(TO_Offres.[N°Client]=" & F![ch client] & ")"
End If

If Not (IsNull(F![ch Commercial])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[N°Commercial]=" & F![ch Commercial]
&
")"
End If

If Not (IsNull(F![ch DateMin])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]>=#" & Format(F![ch DateMin],
"m/d/yyyy") & "#)"
End If

If Not (IsNull(F![ch DateMax])) Then
If Premier Then
ReqSql = ReqSql & "WHERE ("
Premier = False
Else
ReqSql = ReqSql & " AND"
End If
ReqSql = ReqSql & " (TO_Offres.[Date]<=#" & Format(F![ch DateMax],
"m/d/yyyy") & "#)"
End If
' MsgBox premier
If Not (Premier) Then ReqSql = ReqSql & ")" & Alaligne()

ReqSql = ReqSql & "ORDER BY TO_Offres.[N°Offre] desc,
TO_Offres.[Revision
Offre], TO_Offres.NomMachine;"


MaRequête.SQL = ReqSql


Exit Sub

ErreurRequete_LH2_N1:
MaBD.DeleteQueryDef "RLH2_Niv1"
Set MaRequête = MaBD.CreateQueryDef("RLH2_Niv1") ' Crée la
requête.
Resume Next

End Sub