Import de données depuis un tableau excel avec formulaire et une condition

Résolu/Fermé
dje_90 Messages postés 5 Date d'inscription lundi 30 mars 2020 Statut Membre Dernière intervention 22 mars 2021 - Modifié le 30 mars 2020 à 12:34
dje_90 Messages postés 5 Date d'inscription lundi 30 mars 2020 Statut Membre Dernière intervention 22 mars 2021 - 30 mars 2020 à 15:30
Bonjour,

j´essaye de programmer un ERP avec une base de donnée Access.
J´ai 2 table: "Stueckliste"(liste de pièces) et "Projektlist" (liste de projet)

Pour importer des données dans ma table "Stueckliste" (liste de pièces), j´ai créer un formulaire avec lequel je recherche un fichier excel, avant d´importer les données.

Jusqu´ici tout va bien. Mais j´aimerais maintenant vérifier que les données que j´importe contiennent un n° de projet existant dans "Projektlist". Et je n´arrive pas à faire ce controle.
j´ai essayé plusieur syntaxe, mais sans succès pour :Zaehler = DCount("*", "Projektlist", "[Projektnummer]='vProjektnummer'")

Je vous copie ci-dessous mon code, merci d´avance pour votre aide

Private Sub btn_import_Click()

    Dim ChaineSQL As String
    Dim vProjektnummer As String
    Dim Zaehler As String
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook

    vProjektnummer = 0
    Zaehler = 0

    
    Set xlApp = CreateObject("Excel.Application")

    
    xlApp.Visible = True
    
     xlApp.Workbooks.Open Me.txt_path, True, False

    vProjektnummer = Worksheets("Tabelle1").Range("E2").Value
    
    Zaehler = DCount("*", "Projektlist", "[Projektnummer]='vProjektnummer'")


    If Zaeler > 0 Then
    
            'Import from file in Text.feld die Daten in "Stueckliste"
     DoCmd.TransferSpreadsheet acImport, 8, "Stueckliste", Me.txt_path, True

    
            'Delete empty Lines
        ChaineSQL = "delete from Stueckliste where [Teilenummer] is null"
      DoCmd.RunSQL ChaineSQL
    
    Else
        MsgBox "Projektnummer nicht in Projektliste"
    End If
    
    

End Sub
A voir également:

3 réponses

yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024 1 481
Modifié le 30 mars 2020 à 12:45
bonjour, merci d'utiliser les balises de code quand tu postes du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

que veux-tu faire? avant d'importer les données, veux-tu examiner le contenu du fichier Excel? simplement vérifier que la cellule E2 est présente dans la table?
as-tu la bonne valeur dans vProjektnummer?
quel est le type du champ Projektnummer? un entier?

peut-être:
dim nProjektnummer as long
nProjektnummer= vProjektnummer 
Zaehler = DCount("*", "Projektlist", "[Projektnummer]=" + cstr(nProjektnummer) )
0
dje_90 Messages postés 5 Date d'inscription lundi 30 mars 2020 Statut Membre Dernière intervention 22 mars 2021
30 mars 2020 à 14:17
Bonjour,
merci pour ta réponse.
Je veux vérifier que le texte dans la cellule E2 est présent dans la table.

J´ai testé, ca fonctionne si le champs "Projektnummer" est un nombre. Dans mon cas, c´est un texte court => Conflit de donnée
J´ai vérifié dans excel, le cellule est au format texte. Du coup je suis de nouveau bloqué.

Exemple de donnée: "1111"; "1111_RNK_1"

Merci pour ton aide
0
yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024 1 481
30 mars 2020 à 15:19
as-tu la bonne valeur dans vProjektnummer?
alors:
Zaehler = DCount("*", "Projektlist", "[Projektnummer]='" + vProjektnummer + "'" ) )
0
dje_90 Messages postés 5 Date d'inscription lundi 30 mars 2020 Statut Membre Dernière intervention 22 mars 2021
30 mars 2020 à 15:30
Ca marche.

Merci pour ton aide! Ca fesait deux jour que je cherchais.
0