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???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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
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.
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.
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
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