ACCESS affiche #Type!

Bonjour à tous,

Me revoilà dans Access après une douzaine sans en faire, je me trouve bloquer pour un souci.
Au fait, quand on clique sur un bouton "imprimer etiquette", cela m'affiche une page avec 4 fois #Type !. Chaque #Type devrait correspondre à Nom, adresse 1 et 2, code postale. Ci- après un exemple du critère:

=VraiFaux(![Address1] Est Pas Null; SupprEspace(![Address1]);" ")
=[Codepostal] & " " & [Ville]

#Type doit etre une erreur de conversion (String / Integer / autre).
Mais là, je suis bloqué. Si quelqu'un a une idée. Merci de m'aider SVP

4 réponses

  1. Contributeur
    bonjour,
    "une douzaine de jours sans en faire"?
    si je vois bien, tu nous montres deux critères.
    lequel te crée un soucis?
    où est "Nom, adresse 1 et 2, code postale"?

    il sera peut-être plus simple que tu partages ton fichier Access, et ensuite que tu expliques.
    1. Merci de votre réponse

      Oops, pardon, une douzaine d'années* (voir plus) donc autant dire avec les neurones vieillissants que j'ai tout oublié.

      En cliquant sur le bouton "imprimer etiquette", cela devrait ouvrir un onglet "etiquette" mais au lieu cela affiche actuellement:
      #Type!
      #Type!
      #Type!
      #Type!

      En basculant sur "mode creation" de cet onglet, on a les 4 critères suivants :

      =VraiFaux(![NomFacturation] Est Pas Null; SupprEspace(![NomFacturation]);" ")
      =VraiFaux(![Address1] Est Pas Null; SupprEspace(![Address1]);" ")
      =VraiFaux(![Address2] Est Pas Null; SupprEspace(![Address2]);" ")
      =[Codepostal] & " " & [Ville]

      J'espère que vous comprenez un peu plus mon problème
      1. Contributeur
        Il serait utile que tu partages ton fichier Access.
    2. Excusez-moi, vous parlez du fichier .mdb (centaine de Mo) sur lequel il y a tout ou juste le module correspondant a la partie etiquette ? (Désolé je suis perdu).

      Je peux vous partager tous les codes par exemple
      1. Contributeur
        N'importe quel fichier permettant de reproduire le problème.
      2. Contributeur
        @yg_beIl est parfois utile de "compacter/réparer" un fichier, pour réduire sa taille.
      3. @yg_beOui je pourrais zip ou winrar le fichier mais je pense qu'il y a des données "confidentiel" dessus. Je vais voir si je peux isoler le formulaire / module en question uniquement.

        Je vous ai mis ci-dessous le code relatif au bouton en attendant si jamais cela pourrait inspirer.

        En tout cas, merci de prendre le temps de me répondre
      4. Contributeur
        @alio30peut-être faire une copie, vider les tables, puis ajouter des données bidon.
        si cela permet de montrer le problème.
        "compacter/réparer", cela se fait à partir de Access.

        Le code ne m'inspire pas. Si je comprends bien, il fonctionne bien, le soucis, c'est avec les données affichées dans un état.
      5. @yg_beOui c'est bien cela, le problème repose sur l'affichage des données dans un état.
        Je n'arrive pas à vider complètement toutes les données pour pouvoir vous montrer ici le fichier access.

        En attendant, j'ai modifié les codes qui affichent les données et j'ai quelques choses mais la solution n'est pas très correcte "en terme de programmation"
    3. Ci-dessous le code relatif au bouton "imprimer etiquette" :

      Private Sub Bt_Imp_Etiq_Click()
      Dim db As Database
      Dim résultat As Recordset
      Dim strrech As String
      Dim i, j
      Dim table(500, 7)

      DoCmd.RunCommand acCmdRefresh
      Select Case MsgBox("Voulez imprimez l'adresse de facturation ou de livraison ? " & Chr(10) & Chr(13) & "OUI = FACTURATION" & Chr(10) & Chr(13) & "NON = LIVRAISON", vbYesNoCancel)
      Case vbCancel
      Exit Sub
      Case vbYes ' facturation
      Set db = CurrentDb()
      strrech = "SELECT Clients.[PaysFacturation],Clients.[nbreétiquette],Clients.[VilleFacturation],Clients.[CodePostFacturation],Clients.[NomFacturation],Clients.[AdresseFacturation1],Clients.[AdresseFacturation2] FROM Clients WHERE Clients.[Selec fiche]=true "
      i = 1
      DoCmd.Hourglass True
      Set résultat = db.OpenRecordset(strrech)
      Do Until résultat.EOF
      table(i, 1) = résultat![NomFacturation]
      table(i, 2) = résultat![AdresseFacturation1]
      table(i, 3) = résultat![AdresseFacturation2]
      table(i, 4) = résultat![CodePostFacturation]
      table(i, 5) = résultat![VilleFacturation]
      table(i, 6) = résultat![nbreétiquette]
      table(i, 7) = résultat![PaysFacturation]
      i = i + 1
      résultat.MoveNext
      Debug.Print i
      Loop
      résultat.Close
      Case vbNo ' livraison
      Set db = CurrentDb()
      strrech = "SELECT Clients.[Ville],Clients.[nbreétiquette],Clients.[Pays],Clients.[NomEntreprise],Clients.[Adresse1],Clients.[Adresse2],Clients.[CodePostal] FROM Clients WHERE Clients.[Selec fiche]=true "
      i = 1
      DoCmd.Hourglass True
      Set résultat = db.OpenRecordset(strrech)
      Do Until résultat.EOF
      table(i, 1) = résultat![NomEntreprise]
      table(i, 2) = résultat![Adresse1]
      table(i, 3) = résultat![Adresse2]
      table(i, 4) = résultat![CodePostal]
      table(i, 5) = résultat![Ville]
      table(i, 6) = résultat![nbreétiquette]
      table(i, 7) = résultat![Pays]
      i = i + 1
      résultat.MoveNext
      Loop
      résultat.Close
      End Select
      Set résultat = db.OpenRecordset("Impression étiquettes", dbOpenTable)
      Do Until résultat.EOF
      résultat.Delete
      résultat.MoveNext
      Loop
      j = 1
      For i = 1 To 50
      If (Not (IsNull(table(i, 1)))) Then
      For j = 1 To table(i, 6)
      résultat.AddNew
      résultat![NomFacturation] = table(i, 1)
      résultat![Address1] = table(i, 2)
      résultat![Address2] = table(i, 3)
      résultat![CodePostal] = table(i, 4)
      résultat![Ville] = table(i, 5)
      résultat![Pays de liv] = table(i, 7)
      résultat.Update
      Next j
      End If
      Next i
      DoCmd.Hourglass False
      DoCmd.OpenReport "etiquette adresse client", acPreview
      End Sub
      Private Sub Bt_Recopie_Adr_Click()
      Select Case MsgBox("Voulez-vous écraser les coordonnées de l'entreprise par celle de la facturation ? ", vbYesNo)
      Case vbYes
      Me![NomEntreprise] = Me![NomFacturation]
      Me![Adresse] = Me![AdresseFacturation]
      Me![Adresse2] = Me![AdresseFacturation2]
      Me![CodePostal] = Me![CodePostFacturation]
      Me![Ville] = Me![VilleFacturation]
      Me![Région] = Me![RégionFacturation]
      Me![Pays] = Me![PaysFacturation]
      Case vbNo
      Exit Sub
      End Select
      End Sub

      Une aide SVP ?
      Merci