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

openrecordset qui foire

2 réponses
Avatar
brainburnt
bonjour =E0 tous

alors voil=E0 mon probl=E8me. Ci-joint se trouve un extrait de mon code:
(la ligne =E0 probl=E8me est celle pr=E9c=E9d=E9e de '=3D>')


Private Sub eraseEquipe_Click()
Dim code As Integer
Dim code2 As Integer
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset

DoCmd.RunSQL (strSQL)

strSQLtest =3D "SELECT * FROM TYPE_EQUIPE WHERE
(((TYPE_EQUIPE.codeEquipe)=3D" & code2 & "));"
=3D> Set rs =3D db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
'Il existe d'autres descriptions li=E9es =E0 cette
=E9quipe, il ne se passe donc plus rien.
Else
'Il s'agissait de la derni=E8re description li=E9e =E0
cette =E9quipe, on va donc supprimer l'=E9quipe.
strSQL =3D "DELETE * FROM EQUIPE WHERE
(((EQUIPE.codeEquipe)=3D" & code2 & "))"
DoCmd.RunSQL (strSQL)
End If

Call encoreOK
Else
Call encoreOK
Exit Sub
End If
Else
MsgBox ("Veuillez faire la s=E9lection de l'=E9quipe =E0
supprimer")
End If
End Sub



Le probl=E8me vient du

Set rs =3D db.OpenRecordset(strSQLtest, dbOpenDynaset)

En effet il me dit
Erreur d'ex=E9cution '3061'
Trop peu de param=E8tres, 1 attendu.

alors qu'avec la fonction suivante:



Private Sub eraseMachine_Click()
Dim M As String
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset
Dim db As Variant
Set db =3D CurrentDb()


If (codeMachine.Value <> "") Then
M =3D codeMachine.Value

strSQLtest =3D "SELECT * FROM MACHINE_EFFECTUE_ACTION WHERE
(((MACHINE_EFFECTUE_ACTION.codeMachine)=3D" & M & "));"
Set rs =3D db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
MsgBox ("La machine que vous venez de s=E9lectionner est
utilis=E9 dans des TRG. Vous ne pouvez donc pas effectuer cette
suppression.")
Call encoreOK
Exit Sub
Else
sup =3D MsgBox("=CAtes-vous certain de vouloir supprimer cette
machine?", vbCritical + vbYesNo + 256, "Attention")
If (sup =3D vbYes) Then
'Suppression
strSQL =3D "DELETE * FROM MACHINE WHERE
(((MACHINE.codeMachine)=3D" & M & "))"
DoCmd.RunSQL (strSQL)
Call encoreOK
Else
Call encoreOK
Exit Sub
End If
End If
Else
MsgBox ("Veuillez faire la s=E9lection de la machine =E0
supprimer")
End If

End Sub



il n'y a aucun probl=E8me.

Quelqu'un voit-il l=E0 o=F9 je me serais fourvoy=E9???

Merci d'avance de vos r=E9ponses.

amicalement.

brainburnt.

2 réponses

Avatar
brainburnt
oula.
je viens de voir qu'une partie de ce que j'ai écrit à disparut.....
voici donc la fonction à problème dans son ensemble...


Private Sub eraseEquipe_Click()
Dim code As Integer
Dim code2 As Integer
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset
Dim db As Variant
Set db = CurrentDb()


If (numEquipe.Value <> "") Then

sup = MsgBox("Êtes-vous certain de vouloir supprimer cette
équipe?", vbCritical + vbYesNo + 256, "Attention")
If (sup = vbYes) Then
'Suppression
code = DLookup("[codeTypeEquipe]", "TYPE_EQUIPE",
"[libelleTypeEquipe] = Form![numEquipe]")
strSQL = "DELETE * FROM TYPE_EQUIPE WHERE
(((TYPE_EQUIPE.codeTypeEquipe)=" & code & "))"
code2 = DLookup("[codeEquipe]", "EQUIPE_A_POUR_TYPE",
"[codeTypeEquipe] = " & code & "")
DoCmd.RunSQL (strSQL)

strSQL = "DELETE * FROM EQUIPE_A_POUR_TYPE WHERE
(((EQUIPE_A_POUR_TYPE.codeTypeEquipe)=" & code & "))"
DoCmd.RunSQL (strSQL)

strSQLtest = "SELECT * FROM TYPE_EQUIPE WHERE
(((TYPE_EQUIPE.codeEquipe)=" & code2 & "));"
Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
'Il existe d'autres descriptions liées à cette
équipe, il ne se passe donc plus rien.
Else
'Il s'agissait de la dernière description liée à
cette équipe, on va donc supprimer l'équipe.
strSQL = "DELETE * FROM EQUIPE WHERE
(((EQUIPE.codeEquipe)=" & code2 & "))"
DoCmd.RunSQL (strSQL)
End If

Call encoreOK
Else
Call encoreOK
Exit Sub
End If
Else
MsgBox ("Veuillez faire la sélection de l'équipe à
supprimer")
End If
End Sub




brainburnt wrote:
bonjour à tous

alors voilà mon problème. Ci-joint se trouve un extrait de mon code:
(la ligne à problème est celle précédée de '=>')


Private Sub eraseEquipe_Click()
Dim code As Integer
Dim code2 As Integer
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset

DoCmd.RunSQL (strSQL)

strSQLtest = "SELECT * FROM TYPE_EQUIPE WHERE
(((TYPE_EQUIPE.codeEquipe)=" & code2 & "));"
=> Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
'Il existe d'autres descriptions liées à cette
équipe, il ne se passe donc plus rien.
Else
'Il s'agissait de la dernière description liée à
cette équipe, on va donc supprimer l'équipe.
strSQL = "DELETE * FROM EQUIPE WHERE
(((EQUIPE.codeEquipe)=" & code2 & "))"
DoCmd.RunSQL (strSQL)
End If

Call encoreOK
Else
Call encoreOK
Exit Sub
End If
Else
MsgBox ("Veuillez faire la sélection de l'équipe à
supprimer")
End If
End Sub



Le problème vient du

Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)

En effet il me dit
Erreur d'exécution '3061'
Trop peu de paramètres, 1 attendu.

alors qu'avec la fonction suivante:



Private Sub eraseMachine_Click()
Dim M As String
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset
Dim db As Variant
Set db = CurrentDb()


If (codeMachine.Value <> "") Then
M = codeMachine.Value

strSQLtest = "SELECT * FROM MACHINE_EFFECTUE_ACTION WHERE
(((MACHINE_EFFECTUE_ACTION.codeMachine)=" & M & "));"
Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
MsgBox ("La machine que vous venez de sélectionner est
utilisé dans des TRG. Vous ne pouvez donc pas effectuer cette
suppression.")
Call encoreOK
Exit Sub
Else
sup = MsgBox("Êtes-vous certain de vouloir supprimer cette
machine?", vbCritical + vbYesNo + 256, "Attention")
If (sup = vbYes) Then
'Suppression
strSQL = "DELETE * FROM MACHINE WHERE
(((MACHINE.codeMachine)=" & M & "))"
DoCmd.RunSQL (strSQL)
Call encoreOK
Else
Call encoreOK
Exit Sub
End If
End If
Else
MsgBox ("Veuillez faire la sélection de la machine à
supprimer")
End If

End Sub



il n'y a aucun problème.

Quelqu'un voit-il là où je me serais fourvoyé???

Merci d'avance de vos réponses.

amicalement.

brainburnt.


Avatar
brainburnt
rebonjour,

bon alors voila je crois que le manque de vacances se fait cruellement
sentir.
Tout viens d'une erreur d'inattention de ma part (la requete appelée
par le openrecordset n'était pas bonne : une erreur de table est
survenue ^^ )

Mais il aurait dû le dire du genre "erreur 404, le champ n'existe pas
dans cette table"
ou alors
"erreur 404, cerveau du programmeur non trouvé"

Bref, problème résolu

brainburnt wrote:
oula.
je viens de voir qu'une partie de ce que j'ai écrit à disparut.....
voici donc la fonction à problème dans son ensemble...


Private Sub eraseEquipe_Click()
Dim code As Integer
Dim code2 As Integer
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset
Dim db As Variant
Set db = CurrentDb()


If (numEquipe.Value <> "") Then

sup = MsgBox("Êtes-vous certain de vouloir supprimer cette
équipe?", vbCritical + vbYesNo + 256, "Attention")
If (sup = vbYes) Then
'Suppression
code = DLookup("[codeTypeEquipe]", "TYPE_EQUIPE",
"[libelleTypeEquipe] = Form![numEquipe]")
strSQL = "DELETE * FROM TYPE_EQUIPE WHERE
(((TYPE_EQUIPE.codeTypeEquipe)=" & code & "))"
code2 = DLookup("[codeEquipe]", "EQUIPE_A_POUR_TYPE",
"[codeTypeEquipe] = " & code & "")
DoCmd.RunSQL (strSQL)

strSQL = "DELETE * FROM EQUIPE_A_POUR_TYPE WHERE
(((EQUIPE_A_POUR_TYPE.codeTypeEquipe)=" & code & "))"
DoCmd.RunSQL (strSQL)

strSQLtest = "SELECT * FROM TYPE_EQUIPE WHERE
(((TYPE_EQUIPE.codeEquipe)=" & code2 & "));"
Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
'Il existe d'autres descriptions liées à cette
équipe, il ne se passe donc plus rien.
Else
'Il s'agissait de la dernière description liée à
cette équipe, on va donc supprimer l'équipe.
strSQL = "DELETE * FROM EQUIPE WHERE
(((EQUIPE.codeEquipe)=" & code2 & "))"
DoCmd.RunSQL (strSQL)
End If

Call encoreOK
Else
Call encoreOK
Exit Sub
End If
Else
MsgBox ("Veuillez faire la sélection de l'équipe à
supprimer")
End If
End Sub




brainburnt wrote:
bonjour à tous

alors voilà mon problème. Ci-joint se trouve un extrait de mon code:
(la ligne à problème est celle précédée de '=>')


Private Sub eraseEquipe_Click()
Dim code As Integer
Dim code2 As Integer
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset

DoCmd.RunSQL (strSQL)

strSQLtest = "SELECT * FROM TYPE_EQUIPE WHERE
(((TYPE_EQUIPE.codeEquipe)=" & code2 & "));"
=> Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
'Il existe d'autres descriptions liées à cette
équipe, il ne se passe donc plus rien.
Else
'Il s'agissait de la dernière description liée à
cette équipe, on va donc supprimer l'équipe.
strSQL = "DELETE * FROM EQUIPE WHERE
(((EQUIPE.codeEquipe)=" & code2 & "))"
DoCmd.RunSQL (strSQL)
End If

Call encoreOK
Else
Call encoreOK
Exit Sub
End If
Else
MsgBox ("Veuillez faire la sélection de l'équipe à
supprimer")
End If
End Sub



Le problème vient du

Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)

En effet il me dit
Erreur d'exécution '3061'
Trop peu de paramètres, 1 attendu.

alors qu'avec la fonction suivante:



Private Sub eraseMachine_Click()
Dim M As String
Dim sup
Dim strSQL As String
Dim strSQLtest As String
Dim rs As Recordset
Dim db As Variant
Set db = CurrentDb()


If (codeMachine.Value <> "") Then
M = codeMachine.Value

strSQLtest = "SELECT * FROM MACHINE_EFFECTUE_ACTION WHERE
(((MACHINE_EFFECTUE_ACTION.codeMachine)=" & M & "));"
Set rs = db.OpenRecordset(strSQLtest, dbOpenDynaset)
If Not (rs.EOF) Then
MsgBox ("La machine que vous venez de sélectionner est
utilisé dans des TRG. Vous ne pouvez donc pas effectuer cette
suppression.")
Call encoreOK
Exit Sub
Else
sup = MsgBox("Êtes-vous certain de vouloir supprimer ce tte
machine?", vbCritical + vbYesNo + 256, "Attention")
If (sup = vbYes) Then
'Suppression
strSQL = "DELETE * FROM MACHINE WHERE
(((MACHINE.codeMachine)=" & M & "))"
DoCmd.RunSQL (strSQL)
Call encoreOK
Else
Call encoreOK
Exit Sub
End If
End If
Else
MsgBox ("Veuillez faire la sélection de la machine à
supprimer")
End If

End Sub



il n'y a aucun problème.

Quelqu'un voit-il là où je me serais fourvoyé???

Merci d'avance de vos réponses.

amicalement.

brainburnt.