OVH Cloud OVH Cloud

Recordset et SQL

14 réponses
Avatar
Guy FALESSE
Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs =
maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "\EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE

10 réponses

1 2
Avatar
Guy FALESSE
Re-bonjour à tous,

J'ai posté trop vite,
Apparemment, pour les ADOCD, il faut un % et pour ADODB, il faut une étoile
pour les filtres.
@+

Guy FALESSE


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

Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs =
maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE





Avatar
David
Bonjour Guy,

Voici 1 copier/coller de mon pgramme :

Set rs = db.OpenRecordset(SQL, dbOpenSnapshot)
Data1.RecordSource = SQL
Data1.Refresh


a+
Jean-Pol DAVID
mailto:
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Guy FALESSE" a écrit dans le message de news:

Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs > maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE





Avatar
Eric
re Guy,

Ce n'est pas uniquement une question % ou * mais tu extraies les 4
caractères à droite :

... WHERE right(tblCD.File_Name,4)

donc tu n'as pas besoin d'utiliser le caractère générique avec un Like
mais tu devrrais mettre :

... WHERE right(tblCD.File_Name,4)='" & critere & "'"

puisque critere =".zip"

A+
Eric

Guy FALESSE a écrit :
Re-bonjour à tous,

J'ai posté trop vite,
Apparemment, pour les ADOCD, il faut un % et pour ADODB, il faut une étoile
pour les filtres.
@+

Guy FALESSE


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


Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs =
maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE










Avatar
David
Bonjour Guy,

Voici la partie requete avec 'emplacement de l'*:

Dim Q As String
Q = "'" & Text3 & "*'"
SQL = " select * from client where" & champrecherche & "like " & Q & "order
by nom1,ville"



a+
Jean-Pol DAVID
mailto:
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Guy FALESSE" a écrit dans le message de news:

Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs > maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE





Avatar
Guy FALESSE
Salut David,

Merci pour ta réponse.
Je m'y perds toujours dans la syntaxe SQL.
@+

Guy FALESSE


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

Bonjour Guy,

Voici la partie requete avec 'emplacement de l'*:

Dim Q As String
Q = "'" & Text3 & "*'"
SQL = " select * from client where" & champrecherche & "like " & Q &
"order
by nom1,ville"



a+
Jean-Pol DAVID
mailto:
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Guy FALESSE" a écrit dans le message de news:

Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs >> maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '"
&
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE









Avatar
Guy FALESSE
Salut Jean-Pol...David,

Re-merci pour ta réponse, j'en prends bonne note :-)
@+

Guy FALESSE


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

Bonjour Guy,

Voici 1 copier/coller de mon pgramme :

Set rs = db.OpenRecordset(SQL, dbOpenSnapshot)
Data1.RecordSource = SQL
Data1.Refresh


a+
Jean-Pol DAVID
mailto:
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Guy FALESSE" a écrit dans le message de news:

Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs >> maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '"
&
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE









Avatar
Guy FALESSE
Salut Eric,

Merci pour ta réponse.

'monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "*'"
Voilà pourtant, les 2 lignes:
La 1ère ne fonctionne pas contrairement à la seconde :-)
Comprenne qui pourra, il me semblait avoir lu quelque part que ADODC voulait
les % alors que l'autr (DAO) voulait les *, mais tu dis bien uniquement,
donc, il y aurait du vrai là-dedans :-)
@+

Guy FALESSE


"Eric" a écrit dans le message de news:
%
re Guy,

Ce n'est pas uniquement une question % ou * mais tu extraies les 4
caractères à droite :

... WHERE right(tblCD.File_Name,4)

donc tu n'as pas besoin d'utiliser le caractère générique avec un Like
mais tu devrrais mettre :

... WHERE right(tblCD.File_Name,4)='" & critere & "'"

puisque critere =".zip"

A+
Eric

Guy FALESSE a écrit :
Re-bonjour à tous,

J'ai posté trop vite,
Apparemment, pour les ADOCD, il faut un % et pour ADODB, il faut une
étoile pour les filtres.
@+

Guy FALESSE


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


Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs =
maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE











Avatar
Eric
Bonjour Guy,

Je suis d'accord avec toi en ce qui concerne le % ou l'*.
En effet, le SQL en DAO, Moteur Jet impose le caractère générique * qui
n'est pas le caractère sandard générique normé (%).

Mais ma remarque portait, plus particulièrement, sur le fait que tu fais

WHERE right(tblCD.File_Name,4) Like '" & critere & "'"
avec critere = ".zip"

Right(tblCD.File_Name,4) ne peut que te retourner les 4 caractères
extraits par la droite de la chaine tblCD.File_Name
et tu compares ces caractères à une variable chaine de 4 caractères
donc le Like n'est pas utile.

Soit les 4 caractères extraits sont "égaux" aux 4 de critere soit non
D'où ma proposition.

Dans ton approche tu analyses les 4 caractères extraits comme devant
être égaux aux 4 de critere suivis éventuellement par n'importe quoi.

A+
Eric

Guy FALESSE a écrit :
Salut Eric,

Merci pour ta réponse.

'monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "*'"
Voilà pourtant, les 2 lignes:
La 1ère ne fonctionne pas contrairement à la seconde :-)
Comprenne qui pourra, il me semblait avoir lu quelque part que ADODC voulait
les % alors que l'autr (DAO) voulait les *, mais tu dis bien uniquement,
donc, il y aurait du vrai là-dedans :-)
@+

Guy FALESSE


"Eric" a écrit dans le message de news:
%

re Guy,

Ce n'est pas uniquement une question % ou * mais tu extraies les 4
caractères à droite :

... WHERE right(tblCD.File_Name,4)

donc tu n'as pas besoin d'utiliser le caractère générique avec un Like
mais tu devrrais mettre :

... WHERE right(tblCD.File_Name,4)='" & critere & "'"

puisque critere =".zip"

A+
Eric

Guy FALESSE a écrit :

Re-bonjour à tous,

J'ai posté trop vite,
Apparemment, pour les ADOCD, il faut un % et pour ADODB, il faut une
étoile pour les filtres.
@+

Guy FALESSE


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



Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs =
maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par contre,
lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE














Avatar
Guy FALESSE
Salut Eric,

Oui, tu as raison, en fait, j'avais paré au plus pressé, pour tester.
En réalité cette fonction faisait partie d'une autre qui appelait un critère
demandant un nom, lui-mêm demandé par un InputBox :-(
C'est vrai que le choix n'était pas vraiment judicieux :-)
Merci de ta remarque et @+

Guy FALESSE



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

Bonjour Guy,

Je suis d'accord avec toi en ce qui concerne le % ou l'*.
En effet, le SQL en DAO, Moteur Jet impose le caractère générique * qui
n'est pas le caractère sandard générique normé (%).

Mais ma remarque portait, plus particulièrement, sur le fait que tu fais

WHERE right(tblCD.File_Name,4) Like '" & critere & "'"
avec critere = ".zip"

Right(tblCD.File_Name,4) ne peut que te retourner les 4 caractères
extraits par la droite de la chaine tblCD.File_Name
et tu compares ces caractères à une variable chaine de 4 caractères
donc le Like n'est pas utile.

Soit les 4 caractères extraits sont "égaux" aux 4 de critere soit non
D'où ma proposition.

Dans ton approche tu analyses les 4 caractères extraits comme devant être
égaux aux 4 de critere suivis éventuellement par n'importe quoi.

A+
Eric

Guy FALESSE a écrit :
Salut Eric,

Merci pour ta réponse.

'monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '" &
critère & "%'"
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '"
& critère & "*'"
Voilà pourtant, les 2 lignes:
La 1ère ne fonctionne pas contrairement à la seconde :-)
Comprenne qui pourra, il me semblait avoir lu quelque part que ADODC
voulait les % alors que l'autr (DAO) voulait les *, mais tu dis bien
uniquement, donc, il y aurait du vrai là-dedans :-)
@+

Guy FALESSE


"Eric" a écrit dans le message de news:
%

re Guy,

Ce n'est pas uniquement une question % ou * mais tu extraies les 4
caractères à droite :

... WHERE right(tblCD.File_Name,4)

donc tu n'as pas besoin d'utiliser le caractère générique avec un Like
mais tu devrrais mettre :

... WHERE right(tblCD.File_Name,4)='" & critere & "'"

puisque critere =".zip"

A+
Eric

Guy FALESSE a écrit :

Re-bonjour à tous,

J'ai posté trop vite,
Apparemment, pour les ADOCD, il faut un % et pour ADODB, il faut une
étoile pour les filtres.
@+

Guy FALESSE


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



Bonjour à tous,

Voici un code qui, lorsque le recordset est: Set rs =
maBD.OpenRecordset("tblCD")
J'ai toutes les données qui s'inscrivent dans le msFleshGrid, par
contre, lorsque je remplace tblCD par le SQL, rien ne s'affiche, je ne
comprends.
Il ya des zip(trois) dans la table.

Private Sub Form_Load()
Dim maBD As Database
Dim rs As Recordset
Dim sPath As String
Dim monSQL As String, critère As String
critère = ".zip"
sPath = App.Path & "EncodageCD.mdb"
Set maBD = DBEngine.OpenDatabase(sPath)
'Set rs = maBD.OpenRecordset("tblCD")
monSQL = "SELECT * FROM tblCD WHERE right(tblCD.File_Name,4) Like '"
& critère & "%'"
Set rs = maBD.OpenRecordset(monSQL)
Set Data1.Recordset = rs
Me.Text1.Text = rs.RecordCount & " " & "enr."
End Sub

Si quelqu'un pouvait m'aider, cela m'arrangerait fortement.
D'avance merci,

Guy FALESSE
















Avatar
Gloops
Bonjour,

Puisqu'apparemment la réponse est trouvée, je vais profiter de ce fil
pour poser une question sur un sujet proche.

DB contient une table AdressePostale, avec quelques enregistrements.

Je n'ai aucun enregistrement sur
Set Rs = DB.OpenRecordset("AdressePostale")

alors que j'en ai plusieurs sur
Set RS = DB.OpenRecordset("SELECT * FROM AdressePostale")

Ma tête un peu capricieuse me dit que ça n'a pas toujours été, elle se
trompe ?
1 2