Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Import von Excel nach Access

Begonnen von lutschi83, Juli 24, 2015, 09:30:33

⏪ vorheriges - nächstes ⏩

lutschi83

Hallo Leute,
ich hoffe ihr könnt mir mit meinem Problem helfen.
Ich habe ein Formular "frm_auftrag" mit einem Endlos-Unterformular "sub_auftrag". In diesem Unterformular habe ich folgende Felder: "Werk", "PL", "Materialnummer", "Menge", daraus berechnen sich dann andere Felder in der jeweiligen Zeile in diesem Formular.
Nun hat meine Anwenderin für einen Auftrag 200 Materialnummern und hat mich nach einer Importmöglichkeit gefragt. Da dies natürlich wesentlich schneller funktionieren würde. Ich habe es schon versucht direkt in die Tabelle zu importieren, doch leider macht es Probleme mit den Berechneten Feldern. Kann ich den Import direkt im Formular machen? Irgendwie so, dass der Import die Felder füllt und wenn in Excel eine neue Zeile beginnt, er auch in Access einen neuen Datensatz im Unterformular anlegt...

Ich hoffe ich habe es einigermaßen gut erklärt....

Vielen Dank schon einmal für eure Hilfe.
Falls Ihr Vorschläge für eine bessere Lösung habt, bin ich hierfür natürlich offen!

Danke


lutschi83

Ich habe hinbekommen, dass er die Excel-Tabelle importiert. Leider bekomme ich Fehlermeldung, dass Autowerte nicht 0 sein dürfen und dass meine berechneten Felder leer sind. Wie bekomme ich hin, dass die Daten angezeigt, bzw. berechnet werden. Wenn ich im Formular bin und die Materialnummer erneut auswähle, zieht sich der Wert....

MaggieMay

Hallo,

der erste Fehler ist, berechnete Felder überhaupt zu speichern, die werden besser dort stets aktuell neu berechnet wo sie gebraucht werden.

Für den Import brauchst du eine Abfrage, in der diese Berechnungen durchgeführt werden und auch die Auftragsnummer hinzugefügt wird.

Wie sieht das bei dir aus, wie hast du bis jetzt versucht, die Daten in die Tabelle zu bekommen?
Kannst du VBA-Code und/oder SQL-Code dazu zeigen?
Evtl. auch die Struktur der Eingabe und der Zieltabelle?
Freundliche Grüße
MaggieMay

lutschi83

Das Problem ist, dass die Materialnummern keine Werte besitzen. Diese Werte erhalten Sie erst in meiner Access-Tabelle. Sprich also Material xxx soll verschrottet werden, dann gibt der User xxx ein und erhält den aktuellen Bilanzwert des Materials. Deswegen sollen sich nach dem Import die Werte aktualisieren. Private Sub Materialnummer_AfterUpdate()

Me.PE.Value = DLookup("PE", "Material", "[Materialnummer] = '" & Materialnummer.Text & "'")
Me.HK_PE.Value = DLookup("HK_PE", "Material", "[Materialnummer] = '" & Materialnummer.Text & "'")
Me.Bilanzwert_PE.Value = DLookup("Bilanzwert_PE", "Material", "[Materialnummer] = '" & Materialnummer.Text & "'")

End Sub


Ich möchte ja nur, dass die 200 Materialnummern schon mal in der Tabelle stehen und wenn dann die Anwenderin auf aktualisieren oder sowas klickt, dann die Werte zum jeweiligen Material geholt werden....

DF6GL

Hallo,

ZitatDas Problem ist, dass die Materialnummern keine Werte besitzen. Diese Werte erhalten Sie erst in meiner Access-Tabelle.
??

ZitatPrivate Sub Materialnummer_AfterUpdate()

Me!PE= DLookup("PE", "Material", "[Materialnummer] = '" & Me!Materialnummer& "'")
Me!HK_PE= DLookup("HK_PE", "Material", "[Materialnummer] = '" & Me!Materialnummer & "'")
Me!Bilanzwert_PE = DLookup("Bilanzwert_PE", "Material", "[Materialnummer] = '" & Me!Materialnummer& "'")

End Sub

Wenn die in der Excelliste vorhandenen "DS" (sprich Materialnummern und sonstige Felder) zu einem bestimmten Auftrag gehören, dann wäre ein solche Import (Anfüge) -Abfrage besser geeignet.

Zunächst das Excel-Sheet als Tabelle verknüpfen.


Sub btnImport_Click()

Currentdb.Execute "Insert into tblsub_auftrag (AuftragID, Materialnummer, Menge) " & _
" Select "  & Me!AuftragID &  " as AuftragID, Materialnummer , Menge from tbl_XlsSheet", dbfailonerror

Me!sub_auftrag.Requery
End Sub
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

lutschi83

Hallo,

ich habe die Tabelle die ich importieren will verknüpft. Tabellenname "test". Die Felder in der verknüpften Tabelle heißen Auftragsnr, Werk, PL, Materialnummer, Menge, Begruendung.

Folgenden Code führ ich nun im Formular Antrag aus:
Private Sub btnimport_Click()
CurrentDb.Execute "Insert into tblantrag (Auftragsnr, Werk, PL, Materialnummer, Menge, Begruendung) " & _
" Select " & Me!Anatrag_ID & " as Auftragsnr, Werk, PL, Materialnummer , Menge, Begruendung from tbl_test", dbFailOnError

Me!Formular.Requery
End Sub


Wenn ich den Button drücke passiert leider nichts....Fehlt da noch etwas? Muss ich eine Anfügeabfrage erstellen?

MaggieMay

Hi,
Zitat von: lutschi83 am Juli 24, 2015, 14:06:31Die Felder in der verknüpften Tabelle heißen Auftragsnr, Werk, PL, Materialnummer, Menge, Begruendung.
dann ist die Auftragsnr bereits in der Import-Datei enthalten und die Feldnamen von Quelle und Ziel stimmen überein?

ZitatMuss ich eine Anfügeabfrage erstellen?
Was du gezeigt hast ist eine Anfügeabfrage.
Wenn die Abfrage keinen Fehler liefert, so gibt es evtl. nichts anzufügen?

Beschreibe oder zeige uns was du vor Augen hast, wir aber nicht sehen können, bspw. die vollständige Struktur von Quell- und Zieltabelle, die Art der berechneten Felder und die vorzunehmenden Berechnungen.

Der Button heißt Import, wo aber findet der Import bzw. das Verlinken der Tabelle statt?

BTW:Me!Formular.RequeryWas für ein Objekt ist "Formular", was willst du da aktualisieren?
Hast du den Code schon mal kompiliert??
Freundliche Grüße
MaggieMay

lutschi83

Also im Formular Auftrag soll der User seinen Auftrag anlegen. Dann über den Button "btnimport" die Materialnummer aus der Tabelle "test" (verknüpfte Excel-Tabelle) in das Unterformular importiert werden. Das Unterformular bezieht sich auf die Tabelle Antrag.

Vielen Dank noch einmal!

MaggieMay

ZitatDann über den Button "btnimport" die Materialnummer aus der Tabelle "test" (verknüpfte Excel-Tabelle) in das Unterformular importiert werden.
Ins Unterformular wird nichts "importiert", sondern es werden neue Datensätze in die Tabelle geschrieben.
Aber mit der Materialnummer allein ist es ja nicht getan.

Es bleiben immer noch viele Fragen offen.
Warum machst du dies:
" Select " & Me!Anatrag_ID & " as Auftragsnr,
wenn doch die Ausftragsnummer bereits in der Tabelle "test" enthalten ist?

Und was ist hiermit:
ZitatMe!Formular.Requery
Was für ein Objekt ist "Formular", was willst du da aktualisieren?

und mit dieser Frage:
ZitatBeschreibe oder zeige uns [...] die Art der berechneten Felder und die vorzunehmenden Berechnungen.

So kommen wir nicht weiter...

Freundliche Grüße
MaggieMay