OVH Cloud OVH Cloud

Formulaire de recherche

4 réponses
Avatar
Luc Paradis
Bonjour.
Voici mon problème.Dans ma BDD j'ai un formulaire de recherche
multicritaires (trouvé sur internet que j'ai modifié pour mes besoins..) qui
fonctionne sans aucun soucis.
J'ai fait migrer ma base vers un serveur sql et la le formulaire "bug"
message d'erreur du type" incorrect synthaxe....." j'ai testé la meme
operation avec le formulaire d'origine idem... les autres formulaires
fonctionne tous sans aucun problèmes en réseau également..

Qlq aurait une solution a me proposer
D'avance merci.

4 réponses

Avatar
Pierre CFI
bonjour
il y a qq instructions sql de access qui ne passent pas sur sqlserver et vis et versa
tu as repéré l'endroit du bug ? le message ?

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Luc Paradis" a écrit dans le message de news: bkm8si$794$
Bonjour.
Voici mon problème.Dans ma BDD j'ai un formulaire de recherche
multicritaires (trouvé sur internet que j'ai modifié pour mes besoins..) qui
fonctionne sans aucun soucis.
J'ai fait migrer ma base vers un serveur sql et la le formulaire "bug"
message d'erreur du type" incorrect synthaxe....." j'ai testé la meme
operation avec le formulaire d'origine idem... les autres formulaires
fonctionne tous sans aucun problèmes en réseau également..

Qlq aurait une solution a me proposer
D'avance merci.




Avatar
Luc Paradis
Oui voici le message:
Erreur d'execution 170
ligne 1: Incorrect syntax near "codContact".CodContact est la clé primaire
de ma table. Voici le code du formulaire.

Option Compare Database

Private Sub chkPrénoms_Click()

If Me.chkNoms Then
Me.txtRechPrénoms.Visible = False
Else
Me.txtRechPrénoms.Visible = True
End If

RefreshQuery

End Sub


Private Sub chkNoms_Click()

If Me.chkNoms Then
Me.cmbRechNoms.Visible = False
Else
Me.cmbRechNoms.Visible = True
End If

RefreshQuery

End Sub



Private Sub chkAdresses_Click()

If Me.chkAdresses Then
Me.txtRechAdresses.Visible = False
Else
Me.txtRechAdresses.Visible = True
End If

RefreshQuery

End Sub


Private Sub chkType_Click()

If Me.chkType Then
Me.cmbRechType.Visible = False
Else
Me.cmbRechType.Visible = True
End If

RefreshQuery

End Sub

Private Sub cmbRechNoms_BeforeUpdate(Cancel As Integer)

RefreshQuery

End Sub

Private Sub cmbRechType_BeforeUpdate(Cancel As Integer)

RefreshQuery

End Sub

Private Sub Form_Load()

Dim ctl As Control

For Each ctl In Me.Controls
Select Case Left(ctl.Name, 3)
Case "chk"
ctl.Value = -1

Case "lbl"
ctl.Caption = "-*-*-"

Case "txt"
ctl.Visible = False
ctl.Value = ""

Case "cmb"
ctl.Visible = False

End Select
Next ctl

Me.lstResults.RowSource = "SELECT CodContact, Noms, Prénoms, Adresses Type
FROM Contacts;"
Me.lstResults.Requery

End Sub

Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String

SQL = "SELECT CodContact, Noms, Prénoms, Adresses, Type FROM Contacts Where
Contacts!CodContact <> 0 "

If Not Me.chkPrénoms Then
SQL = SQL & "And Contacts!Prénoms like '*" & Me.txtRechPrénoms & "*' "
End If
If Not Me.chkNoms Then
SQL = SQL & "And Contacts!Noms = '" & Me.cmbRechNoms & "' "
End If

If Not Me.chkAdresses Then
SQL = SQL & "And Contacts!Adresses like '*" & Me.txtRechAdresses & "*' "
End If
If Not Me.chkType Then
SQL = SQL & "And Contacts!Type = '" & Me.cmbRechType & "' "
End If

SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") +
1))

SQL = SQL & ";"

Me.lblStats.Caption = DCount("*", "Contacts", SQLWhere) & " / " &
DCount("*", "Contacts")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub


Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
End Sub

Private Sub lstResults_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmAutoContacts", acNormal, , "[CodContact] = " &
Me.lstResults
End Sub

Private Sub txtRechPrénoms_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub

Private Sub txtRechAdresses_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Avatar
Pierre CFI
.../...
pas evident à voir de ma fenétre, ce qui change , entre autre, le caractére générique * qui est %

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Luc Paradis" a écrit dans le message de news: bkmadh$8mf$
Oui voici le message:
Erreur d'execution 170
ligne 1: Incorrect syntax near "codContact".CodContact est la clé primaire
de ma table. Voici le code du formulaire.

Option Compare Database

Private Sub chkPrénoms_Click()

If Me.chkNoms Then
Me.txtRechPrénoms.Visible = False
Else
Me.txtRechPrénoms.Visible = True
End If

RefreshQuery

End Sub


Private Sub chkNoms_Click()

If Me.chkNoms Then
Me.cmbRechNoms.Visible = False
Else
Me.cmbRechNoms.Visible = True
End If

RefreshQuery

End Sub



Private Sub chkAdresses_Click()

If Me.chkAdresses Then
Me.txtRechAdresses.Visible = False
Else
Me.txtRechAdresses.Visible = True
End If

RefreshQuery

End Sub


Private Sub chkType_Click()

If Me.chkType Then
Me.cmbRechType.Visible = False
Else
Me.cmbRechType.Visible = True
End If

RefreshQuery

End Sub

Private Sub cmbRechNoms_BeforeUpdate(Cancel As Integer)

RefreshQuery

End Sub

Private Sub cmbRechType_BeforeUpdate(Cancel As Integer)

RefreshQuery

End Sub

Private Sub Form_Load()

Dim ctl As Control

For Each ctl In Me.Controls
Select Case Left(ctl.Name, 3)
Case "chk"
ctl.Value = -1

Case "lbl"
ctl.Caption = "-*-*-"

Case "txt"
ctl.Visible = False
ctl.Value = ""

Case "cmb"
ctl.Visible = False

End Select
Next ctl

Me.lstResults.RowSource = "SELECT CodContact, Noms, Prénoms, Adresses Type
FROM Contacts;"
Me.lstResults.Requery

End Sub

Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String

SQL = "SELECT CodContact, Noms, Prénoms, Adresses, Type FROM Contacts Where
Contacts!CodContact <> 0 "

If Not Me.chkPrénoms Then
SQL = SQL & "And Contacts!Prénoms like '*" & Me.txtRechPrénoms & "*' "
End If
If Not Me.chkNoms Then
SQL = SQL & "And Contacts!Noms = '" & Me.cmbRechNoms & "' "
End If

If Not Me.chkAdresses Then
SQL = SQL & "And Contacts!Adresses like '*" & Me.txtRechAdresses & "*' "
End If
If Not Me.chkType Then
SQL = SQL & "And Contacts!Type = '" & Me.cmbRechType & "' "
End If

SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") +
1))

SQL = SQL & ";"

Me.lblStats.Caption = DCount("*", "Contacts", SQLWhere) & " / " &
DCount("*", "Contacts")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub


Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
End Sub

Private Sub lstResults_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmAutoContacts", acNormal, , "[CodContact] = " &
Me.lstResults
End Sub

Private Sub txtRechPrénoms_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub

Private Sub txtRechAdresses_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub




Avatar
Luc Paradis
J'ai modifier les caractères mais toujours la même chose.J'ai aussi un
message d'erreur au lancement du formulaire."Instruction SQL
incorrect.Verifiez le filtre du serveur sur la source de l'enregistrement du
formulaire."

Mes connaissances en SQL sont extremement limitées...
D'autre part, puisque mon formulaire actuel ne fonctionne pas comment faire
pour effectuer une recherche sur une table via un formulaire sans passer par
la boite de recherche Access.Exemple: Obtenir le Noms, prénoms etc..

Merci