begin process at 2012 02 14 20:20:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

Problèmes avec 1 formulaire dans access


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problèmes avec 1 formulaire dans access

mercredi 25 janvier 2006 à 09:44:57 | Problèmes avec 1 formulaire dans access

Muramasa

Bonjour,

 J'ai un problème particulièrement  agaçant avec access. Quand j'essaie de vider une table(temp_seance) aux travers de code vba avec CurrentDb.Execute "DELETE * FROM [temp_seance];" , il m'affiche l'erreur suivante :
"Erreur d'exécution '3008' : la table 'temp_seance' est déjà ouverte en mode exclusif par un autre utilisateur, ou elle est déjà ouverte par l'interface utilisateur et ne peut pas être manipulée par programmation".
Je vous mets le code du formulaire(principal) et aussi le code du formulaire(seance_fin) qui ouvre "principal".
Si vous pouviez me dire pourquoi ça bug ou comment faire pour que ça fonctionne, merci.

Principal :

Private Sub fonct_assoc_AfterUpdate()
    Call update
End Sub
Private Sub fonct_ext_AfterUpdate()
    Call update
End Sub
Private Sub update()
    If fonct_assoc.Value = 6 Then ' Verifie si on affiche tous les associations
        If fonct_ext.Value = 6 Then ' Verifie si on affiche tous les extensions
            Forms![principal]![rq_finalbis subform].Form.RecordSource = "SELECT membre.nom_membre,              membre.prenom, membre.prevenu, membre.id_membre FROM fonction_assoc INNER JOIN membre ON fonction_assoc.id_fonction_assoc=membre.ID_fonction_assoc GROUP BY membre.nom_membre, membre.prenom, membre.prevenu, membre.id_membre;"  'affiche tout
        Else 'Si les fonctions exterieurs ne sont pas affichés
            Forms![principal]![rq_finalbis subform].Form.RecordSource = "SELECT membre.nom_membre, membre.prenom, membre.prevenu, fonction_ext.id_fonction_ext FROM fonction_ext INNER JOIN (fonction_assoc INNER JOIN membre ON fonction_assoc.id_fonction_assoc = membre.ID_fonction_assoc) ON fonction_ext.id_fonction_ext = membre.ID_fonction_ext WHERE (((fonction_ext.id_fonction_ext)=[Forms]![principal]![fonct_ext]));" 'affiche en fonction de fonct_ext
        End If
    Else ' pas assoc
        If fonct_ext.Value = 6 Then ' ext tous
            Forms![principal]![rq_finalbis subform].Form.RecordSource = "SELECT membre.nom_membre, membre.prenom, membre.prevenu, fonction_assoc.id_fonction_assoc FROM fonction_ext INNER JOIN (fonction_assoc INNER JOIN membre ON fonction_assoc.id_fonction_assoc = membre.ID_fonction_assoc) ON fonction_ext.id_fonction_ext = membre.ID_fonction_ext WHERE (((fonction_assoc.id_fonction_assoc)=[Forms]![principal]![fonct_assoc]));" 'affiche en fonction de fonct_assoc
        Else ' ext pas tous
            Forms![principal]![rq_finalbis subform].Form.RecordSource = "SELECT membre.nom_membre, membre.prenom, membre.prevenu, fonction_assoc.id_fonction_assoc, fonction_ext.id_fonction_ext FROM fonction_ext INNER JOIN (fonction_assoc INNER JOIN membre ON fonction_assoc.id_fonction_assoc = membre.ID_fonction_assoc) ON fonction_ext.id_fonction_ext = membre.ID_fonction_ext WHERE (((fonction_assoc.id_fonction_assoc)=[Forms]![principal]![fonct_assoc]) AND ((fonction_ext.id_fonction_ext)=[Forms]![principal]![fonct_ext]));" 'affiche en fonction des 2, séparéments
        End If
    End If
    DoCmd.RunMacro "actualiser"
End Sub
Private Sub fonct_assoc_Click()
    inviter.Value = False
    DoCmd.RunMacro "actualiser"
End Sub
Private Sub fonct_ext_Click()
    inviter.Value = False
    DoCmd.RunMacro "actualiser"
End Sub
Private Sub Form_Load()
    inviter = False
    DoCmd.RunMacro "raz_prevenu"
    fonct_ext.Value = 6
    fonct_assoc.Value = 6
DoCmd.Close acTable, "temp_seance" 'et la pourtant je demande la fermeture de la table "temp_seance"
    CurrentDb.Execute "DELETE * FROM [temp_seance];" 'access situe l'erreur à ce niveau
End Sub
Private Sub inviter_Click()
    DoCmd.SetWarnings False
    If inviter.Value = True Then
        If fonct_ext.Value = 6 Then
            If fonct_assoc.Value = 6 Then
                DoCmd.OpenQuery "mas_tous_v"
            Else
                DoCmd.OpenQuery "mas_tous_ext_v"
            End If
        Else
            If fonct_assoc.Value = 6 Then
                DoCmd.OpenQuery "mas_tous_assoc_v"
            Else
                DoCmd.OpenQuery "mas_invit_v"
            End If
        End If
    DoCmd.RunMacro "actualiser"
    End If
    If inviter.Value = False Then
        If fonct_ext.Value = 6 Then
            If fonct_assoc.Value = 6 Then
                DoCmd.OpenQuery "mas_tous_f"
            Else
                DoCmd.OpenQuery "mas_tous_ext_f"
            End If
        Else
            If fonct_assoc.Value = 6 Then
                DoCmd.OpenQuery "mas_tous_assoc_f"
            Else
                DoCmd.OpenQuery "mas_invit_f"
            End If
        End If
    DoCmd.RunMacro "actualiser"
    End If
End Sub

Seance_fin:
Option Compare Database
Private Sub confirm_AfterUpdate()

    If confirm.Value = False Then
    envoyer.Enabled = False
    Else
    envoyer.Enabled = True
    End If
End Sub
Private Sub envoyer_Click()
    'Créations des objets utiles
    Dim varOpen As String
    Dim varOpen2 As String
    Dim varOpen3 As String
    Dim objMail As Object
    Dim
MaBase As New ADODB.Recordset       'Création de l'objet permettant une interaction avec la BDD ouverte
    Set objMail = CreateObject("CDO.Message")   'Création de l'objet permettant de manipuler l'envoi d'email
    Dim result As VbMsgBoxResult
    Dim
result2 As Variant
    Dim
corpsMail As Variant
    Dim
result3 As Variant
depart:
        corpsMail = "Madame, Monsieur, Voici les informations utiles à notre prochaine rencontre."
        result3 = MsgBox("Voulez-vous laissez le corps du message par défaut ?" & vbNewLine & vbNewLine & "Le message par défaut est:" & vbNewLine & vbNewLine & """" & corpsMail & """", vbYesNo, "Envoi d'E-Mail")
            Select Case result3
                Case vbYes
                GoTo suite0:
            End Select              
        corpsMail = InputBox("Ecrivez le message voulu", "Envoi d'E-Mail")
suite0:
        MaBase.Open "Rsrtd", CurrentProject.Connection   'Connexion avec une requête de la BDD
        MaBase.MoveFirst    'Déplace le curseur sur la première ligne de la requête
        result2 = InputBox("Sélectionner le nombre de pièce jointe" & vbNewLine & "(Maximum 3;Minimum 0)") 'Boite de dialogue demandant le nombre de fichiers joints avec ses différents sorties
        If result2 = 0 Then GoTo suite:
        If result2 = 2 Then GoTo deux:
        If result2 = 3 Then GoTo trois:
        If result2 > 3 Then GoTo Erreur:
        If result2 < 0 Then GoTo Erreur:
suite1:
        varOpen = OpenIt() 'Définition de l'objet en tant que fonction
        objMail.AddAttachment varOpen 'Définit le fichier sélectionné comme fichier joint
suite:
        If varOpen = "" Then varOpen = "(Aucun fichier joint)"     
        result = MsgBox(varOpen & vbNewLine & varOpen2 & vbNewLine & varOpen3, vbYesNo, "Envoyer Emails avec ce(s) fichier(s) joint(s) ?")
            Select Case result
                Case vbNo
                GoTo fin:
            End Select 
        While Not MaBase.EOF    'Début de la boucle vérifiant toutes les lignes de la requête jusaqu'à la dernière ligne (End Of File)
            objMail.To = MaBase("email")     'Définition des différentes variables utile à l'envoi mail (A, Objet...)
            objMail.From = "Administrateur"
            objMail.Subject = "Informations AVFPI"
            objMail.TextBody = corpsMail
            objMail.Send    'Envoie les Mails
            MaBase.MoveNext 'Passe à la ligne suivante de la requête
        Wend
   MaBase.Close    'Après utilisation, fermeture de la connexion avec la BDD
   Set objMail = Nothing   'Vidage de l'objet de la mémoire
   Set MaBase = Nothing    'Vidage de la BDD de la mémoire
   MsgBox ("Messages envoyés avec succès")
   GoTo fin:
deux:
    varOpen2 = OpenIt2()    'Définit une autre variable pour chaque fichier joint
    objMail.AddAttachment varOpen2
    GoTo suite1:
trois:
    varOpen2 = OpenIt2()
    objMail.AddAttachment varOpen2
    varOpen3 = OpenIt3()
    objMail.AddAttachment varOpen3
    GoTo suite1:
Erreur:
blabla = MsgBox("Vous n'avez pas spécifié un nombre de fichier joint supporté par le programme" & vbNewLine & vbNewLine & "OU vous avez interrompu le programme en cours.", vbCritical, "Erreur")
GoTo fin:
'config:
        'Ces différentes propriété de l'objet objMail permettent d'utiliser la librairie CDO hors d'un serveur Exchange
        'objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "Adresse SMTP"
        'objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Identifiant"
        'objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Password"
        'objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port smtp
        'objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        'objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True Passer ou non par une connection SSL
        'objMail.Configuration.Fields.Update

fin:
    DoCmd.SetWarnings (off)
    DoCmd.Close acQuery, "update_seance", acSaveNo
DoCmd.Close acTable, "temp_seance", acSaveNo 'et la pourtant je demande la fermeture de la table "temp_seance"
    DoCmd.Close acForm, "seance_fin"
    DoCmd.OpenForm "principal"
End Sub
Private Sub Form_Load()
    confirm.Value = False
    envoyer.Enabled = False
End Sub
Private Sub Commande7_Click()
    DoCmd.Close
    DoCmd.OpenForm "t_ajout_seance1"
End Sub
Private Sub confirm_Click()
    If confirm.Value = False Then
    envoyer.Enabled = False
    Else
    envoyer.Enabled = True
    End If
End Sub

Merci d'avance.
Muramasa

L'esprit n'a comme limite que celle que nous lui fixons. 

Le bonheur est tel le papillon, on croit l'attraper... il s'envole...


Cette discussion est classée dans : fonction, id, membre, ext, assoc


Répondre à ce message

Sujets en rapport avec ce message

problème avec la méthode find des recordset ADODB [ par piotr ] Bonjour... J'utilise ADODB pour un accès à une base Accès. J'ai écrit une fonction dont le rôle est de vérifier si un enregistrement existe et, le cas VBA access requette avec condition relative ds un fonction de formulaire [ par ADSL_le_faluchard ] Bonjour je suis débutant en VBA et confronter a un probleme que je n'arrive pas a resoudre seultou d'abort voila la fonction que j'ai ecrit :Function VB Requête SQL INSERT INTO [ par jjg65 ] Chers membres, <p class="MsoNormal" style=" Requête INSERT INTO [ par jjg65 ] Chers membres, Je travaille a Pb de zone membre.php [ par darksmiling ] je suis débutant en terme de php et j'ai un petit probleme avec ma zone membre. Disons plus tôt que je ne sais pas comment faire quelque chose. Je tie ID de tâche renvoyé par SHELL [ par PatriceVB ] Bjr, J'aimerais savoir comment utiliser l'ID de tâche renvoyé par la fonction SHELL afin de savoir si l'appli exécutée par cette fonction est toujours affieher les donnees dans des textbox apartir d'un datagridview [ par aichaoussousagadir ] salut à tous j ai entrain de dévolopper une application sous vb.net 2008 et access 2007 comme SGBD. j'ai une table "antecedant" ayant deux colonne (i remplir les textbox a partir d un satagridview [ par aichaoussousagadir ] bonjour à tous j'ai entrain de dévolopper une application sous vb.net 2008 et access 2007 comme SGBD. j'ai une table "antecedant" ayant deux colonne(i cliquer sur un bouton dans une fonction sans ID ni Value ni Name [ par jndruo78150 ] Bonjour a toutes et a tous, Jveux clique sur un bouton sans value ni ID et en plus de ça il est dans une fonction dont voici le code: [code=html]fu PageSetupDialog [ par jiel2007 ] [^^confus2]Bonjour à toutes et à tous, J’ai un petit problème avec la fonction PageSetupDialog que j’utilise en VB 2008 Express Edition. J’utilise la


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales