IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Message erreur sur Mise à jour formulaire


Sujet :

Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Message erreur sur Mise à jour formulaire
    Bonjour à tous,

    A la fermeture de mon formulaire, je souhaite mettre à jour mon formulaire principal qui lui est basé sur une table temporaire.

    J'ai une erreur que je n'arrive pas à solutionner.

    Voici la syntaxe :

    Private Sub Form_Close()
    Dim MaBase As Database
    Dim sqldel As String, SqlInsert2 As String, StrSql As String

    Set MaBase = CurrentDb


    sqldel = "DELETE Tbl_TempRegrOutlook.*"
    sqldel = sqldel & " FROM Tbl_TempRegrOutlook;"

    CurrentDb.Execute sqldel

    'ajoute les éléments à la table temporaire
    SqlInsert2 = "INSERT INTO Tbl_TempRegrOutlook ( NumAuto, Nom_Client, CodeClient, Commercial, "
    SqlInsert2 = SqlInsert2 & " [Date], Message, Sujet, DateMAJ, Maj_CpteRendu ) "
    SqlInsert2 = SqlInsert2 & " SELECT Tbl_RegrOutlook.NumAuto, Tbl_RegrOutlook.Nom_Client, "
    SqlInsert2 = SqlInsert2 & " Tbl_RegrOutlook.CodeClient, Tbl_RegrOutlook.Commercial, Tbl_RegrOutlook.Date, "
    SqlInsert2 = SqlInsert2 & " Tbl_RegrOutlook.Message, Tbl_RegrOutlook.Sujet, Tbl_RegrOutlook.DateMAJ, "
    SqlInsert2 = SqlInsert2 & " Tbl_RegrOutlook.Maj_CpteRendu FROM Tbl_RegrOutlook "
    SqlInsert2 = SqlInsert2 & " WHERE (((Tbl_RegrOutlook.CodeClient) Is Null Or (Tbl_RegrOutlook.CodeClient)=""" & """)"
    SqlInsert2 = SqlInsert2 & " AND ((Tbl_RegrOutlook.Maj_CpteRendu)=False)) AND ((Tbl_RegrOutlook.Commercial)= " & "'" & Forms("Frm_Prospects")!Cbo_Cial.Value & "');"

    CurrentDb.Execute SqlInsert2

    'Crée la chaine SQL correspondant à la recherche des éléments qui restent à mettre à jour
    StrSql = "SELECT Tbl_TempRegrOutlook.Nom_Client, Tbl_TempRegrOutlook.CodeClient, Tbl_TempRegrOutlook.Commercial, "
    StrSql = StrSql & " Tbl_TempRegrOutlook.Date , Tbl_TempRegrOutlook.Message, Tbl_TempRegrOutlook.Sujet, "
    StrSql = StrSql & " Tbl_TempRegrOutlook.DateMAJ, Tbl_TempRegrOutlook.Maj_CpteRendu, Tbl_TempRegrOutlook.Numauto FROM Tbl_TempRegrOutlook "
    StrSql = StrSql & " WHERE ((Tbl_TempRegrOutlook.Maj_CpteRendu) = False) "
    StrSql = StrSql & " ORDER BY Tbl_TempRegrOutlook.Commercial;"

    'Ouvre le recordset
    Set MaBase = CurrentDb.OpenRecordset(StrSql)
    Forms("Sfrm_TempRegrOutlook").Form.RecordSource = StrSql

    End Sub
    Pouvez vous me dire ce qui ne va pas.

    Merci d'avance pour votre aide.

    Daniel

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    ta un problème dans ta requete : quand tu as un order by tu ne peut avoir dans ton select que des champs qui sont dans le order by (ou des champs calculé).
    Il faut que tu modifie ta reqète
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Merci guigui5931 pour ta réponse, je vais corriger ma requête.

    Néanmoins je rencontre un problème avec le code suivant :
    Set MaBase = CurrentDb.OpenRecordset(StrSql)
    Forms("Sfrm_TempRegrOutlook").Form.RecordSource = StrSql
    et j'ai un message qui m'informe qu'il ne trouve pas le formulaire en question.

    Avez-vous une idée sur le problème ?

    Daniel

  4. #4
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Forms("Sfrm_TempRegrOutlook").RecordSource = StrSql
    devrait marcher
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    quand tu as un order by tu ne peut avoir dans ton select que des champs qui sont dans le order by (ou des champs calculé).
    Heureusement que c'est faux, sinon, comment trier une liste de client par ordre alphabétique du nom ?

  6. #6
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut mille excuse
    j'ai lu le sujet un peu vite c'est dans un Group By ou tu ne peut avoir ton select que des champs qui sont dans le Group by (ou des champs calculé).

    Encore désolé
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  7. #7
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Merci beaucoup pour vos messages, j'ai finalement trouvé mon erreur.
    Voici la syntaxe de départ :

    Forms("Sfrm_TempRegrOutlook").Form.RecordSource = StrSql
    Le formulaire qui devait être mis à jour était le sous-formulaire et j'avais omis de préciser le nom du formulaire principal.

    Forms![Frm_Prospects]![Sfrm_TempRegrOutlook].Form.RecordSource = StrSql
    Merci encore pour votre aide.

    Daniel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Listbox, message d'erreur sur mise à jour
    Par GuyDuLac dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/11/2013, 19h33
  2. Erreur lors du clic sur "mise à jour"
    Par juninho dans le forum Windows Forms
    Réponses: 23
    Dernier message: 10/02/2009, 18h06
  3. Erreur sur mise à jour en cycle GAP
    Par mutsum1 dans le forum AS/400
    Réponses: 5
    Dernier message: 22/08/2008, 10h59
  4. message "Erreur de mise à jour de base de donnée"
    Par isac83 dans le forum Hébergement
    Réponses: 0
    Dernier message: 16/07/2008, 18h50
  5. Erreur sur mise à jour
    Par Smint dans le forum Access
    Réponses: 10
    Dernier message: 01/07/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo