{Access} problème de requête

Résolu
Bonjour,

voici mon code :

INSERT INTO Devis ([N° Devis], N°lancement)
SELECT tCréationlancement.N°lancement, tCréationlancement.[N° Devis]
FROM tCréationlancement;

et mon problème c'est que j'ai un message qui me dit : "l'instruction INSERT INTO contient le nom de champ inconnu suivant : 'N°lancement'. Assurez-vous que vous avez correctement saisi le nom, puis recommencez l'opération".

j'ai regardé et j'ai bien saisi le nom et il m'affiche toujours ce même message.
pouvez-vous m'aider svp ?
Configuration: Windows XP Internet Explorer 6.0

29 réponses

Résumé de la discussion

L'enjeu central est une erreur Access lors d'un INSERT INTO : le message indique que le champ 'N°lancement' est inconnu malgré la saisie apparente du nom. Plusieurs réponses suggèrent de placer les noms de champs entre crochets ou guillemets et de vérifier que l'ordre des colonnes correspond bien au SELECT. D'autres échanges évoquent des soucis connexes comme des enregistrements manquants, des boucles de traitement et des conseils sur le débogage dans des formulaires Access. Enfin, plusieurs échanges convergent vers l'idée de entourer les noms de champs par des crochets dans l'instruction et de vérifier l'alignement entre INSERT INTO et SELECT.

Bobot (l’IA à votre service)
  1. Jten ai fait un qui fonctionne adapte le a ton code et dit moi après ... attention au quotes et tout sa

    Private Sub verif_Click()

    Dim bdd As DAO.Database
    Dim Rst As DAO.Recordset

    Set bdd = CurrentDb

    If IsNull(NUMDAS) Then
    MsgBox "Rentre un nombre", vbCritical
    Else
    If IsNumeric(NUMDAS) = False Then
    MsgBox "Ceci n'est pas un nombre", vbCritical
    Else

    Set Rst = bdd.OpenRecordset("SELECT N°DAS FROM DAS WHERE N°DAS = " & NUMDAS.Value & " ")

    If Not Rst.EOF Then

    MsgBox "tout compris mec ..."
    Else
    MsgBox "rien compris mec ..."

    End If

    End If
    End If
    End Sub
    1. Private Sub btnVerification_Click()

      Dim bdd As Database
      Dim Rst As Recordset

      Set bdd = CurrentDb
      Set Rst = bdd.OpenRecordset("SELECT DAS.* FROM DAS")

      If Not Rst.EOF Then

      Rst.MoveFirst

      Do

      If ([Form_fNouveaudas].NUMDAS) = Rst.Fields("N°DAS") Then
      MsgBox "tout compris mec ..."
      Else
      Rst.MoveNext
      End If

      Loop Until (NUMDAS.Value = Rst.Fields("N°DAS")

      End If

      End Sub
      1. SAlut,

        le signe différent de en ACCESS c'est sa ===> <>

        et est-ce que tu peux me mettre le code de ton bouton car je suis perdu sans matière...Merci
        1. ?
          une autre question le signe différent en vb sous access c'est quoi ?
          1. Euh attends qu'est ce qui génère la vérification c'est un bouton???
            1. le message que j'ai est "l'expression sur clic entrée comme paramètre etc"
              1. Ok dans le loop met

                Loop Until NUMDAS.Value = Rst.Fields("N°DAS")

                et dis moi ce que tu as...

                Faut pas t'en faire car le mot que tu vois "Aucun enregistrement" est normal...

                je vais t'expliquer après comment le traiter
                1. celle qui est à vérifier s'appelle NUMDAS qui vient du formulaire fNouveaudas et le champ dans ma base suivicommercial, il est dans la table DAS et il se nomme N°DAS
                  1. juste avant de répondre : quel est le nom exact de ta textbox???
                    1. j'ai une autre erreur c'est que le message me marque aucun enregistrement en cours, sais-tu ce que cela veut dire ?

                      et le déboggeur me met sur cette ligne :"Loop Until ([Form_fNouveaudas].NUMDAS) = Rst.Fields("N°DAS")"
                      1. ou
                        dim bdd as database
                        dim rst as openrecordset

                        set bdd=currentdb
                        set rst = etc.
                        1. Si tu dois créer un jeu d'enregistrements

                          exemple

                          Dim Base As Database
                          Dim rst As Recordset

                          Set Base As CurrentDb <== si tu travaille sur la base en cours, sinon tu met l'emplacement de ta base.

                          et après tu fais

                          Set rst = Base.OpenRecordset("....
                          1. oui tu es obligé...

                            sinon comment comptes - tu comparer t'es valeur et avec quoi??

                            il faut que tu lui définisse l'environnement sur lequel ton code va travailler

                            et tu le fais avec le Set rst = etc....
                            1. et c'est quoi ce jeu d'enregistrement pour faire la connexion ?
                              • 1
                              • 2