Import de données depuis un tableau excel avec formulaire et une condition
Résolu
dje_90
Messages postés
5
Statut
Membre
-
dje_90 Messages postés 5 Statut Membre -
dje_90 Messages postés 5 Statut Membre -
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
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:
- Extraire des données d'un tableau excel vers un autre tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique excel exemple - Guide
3 réponses
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:
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) )
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
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