Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Einzelne Daten aus Access in Excel importieren





Frage

Hallo, ich habe eine Access Datenbank mit etwa 500.000!!! Artikeln. Da ich etwa 500 dieser Artikel ständig brauche möchte ich mir in Excel eine Liste erstellen. Beispielsweise habe ich im Feld A1 die Bestellnummer hinterlegt und möchte aus Access im Feld B1 den dazugehörigen Preis importieren. Die Access Datenbank wird ständig aktualisiert und ich möchte natürlich, dass die Preise in meiner Excel Tabelle auch immer aktuell sind. Leider hab ich absolut keine Kenntnisse mit VBA Programmierung :( Hat da jemand eine Lösung für mich????

Antwort 1 von piano

Hallo
Wenn du
Zitat:
absolut keine Kenntnisse mit VBA Programmierung
hast, dann wird es schwierig.
Vielleicht kannst du mit "Daten / Externe Daten importieren" mit einer vorgefertigten Abfrage jeweils bei Öffnen der Excel-Arbeitsmappe die Daten aktualisieren.
Die Abfrage erstellst du entweder in Access oder direkt als "neue Abfrage" und folge dem Assistenten.

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -

Antwort 2 von pelle

Hallo micico,

ich traue mich fast nicht piano zu widersprechen! :-)

Er/sie hat mr schon in einigen VBA-Problemen weitergeholfen!!!!

Vielleicht lässt sich dein Problem auch ohne VBA lösen!?!

Schritt 1:
Exportiere deine Tabelle/Abfrage mit Hilfe eines Makros/manuell in eine Exceltabelle!

Schritt 2:
"Bau" eine "Verküpfung" deiner aktuellen Tabelle und deiner exportierten Tabelle über SVERWEIS auf!

Vielleicht hilft es weiter!

Rückmeldung (neudeutsch:feedback) wäre schön!

gruss
pelle

Ps.: gruss @piano

Antwort 3 von micico

Zunächst einmal vielen Dank für die schnelle Antwort. Ich hab das schon einmal mit dem exportieren probiert. das Problem ist nur, dass die Preise nahezu jeden Monat aktualisiert werden und ich den Vorgang jedes mal neu machen müßte... wäre ein zu großer Zeitaufwand.... Ich habe mir schon mal üerlegt mich in die Materie der VBA Programmierung einzuarbeiten, aber ich glaube das dauert auch zu lange....

Antwort 4 von micico

achso ...... ich kann die Tabelle nicht in excel importieren da ich immer die Fehlermeldung erhalte dass die Datei zu gross ist... :(

Antwort 5 von piano

Hallo
Hier ein Beispiel, wie man mit so einem Problem umgehen kann:
 Function ExcelDateiUpdate()
Dim ExcelDatei As String
Dim ExcelName As String
Dim ExcelPfad As String
Dim tabelle As Object
ExcelPfad = "D:\"
ExcelName = "DeineMappe.xls"
ExcelDatei = ExcelPfad & ExcelName
If Not FileExist(ExcelDatei) Then
MsgBox "Excel-Datei nicht vorhanden !", vbExclamation
Exit Function
End If
Set tabelle = CreateObject("Excel.sheet")
With tabelle.Application
.DisplayAlerts = False
.workbooks.Open FileName:=ExcelDatei
.Visible = False
.ScreenUpdating = False
    .Sheets("Tabelle1").Select
    .Range("A1").Select
    .Selection.Value = PreisAusAccess

´ beliebige Excel-Commands hinter dem Punkt

.ScreenUpdating = True
.Save
.Quit
End With
End Function

Function FileExist(dateiname$) As Boolean
´Die Funktion prüft, ob eine Datei vorhanden ist
On Error GoTo fehler:
FileExist = Dir$(dateiname) <> ""
Exit Function
fehler:
    FileExist = False
    Resume Next
End Function

 


Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -

Antwort 6 von piano

Hallo @pelle
zu
Zitat:
ich traue mich fast nicht piano zu widersprechen!

Freut mich
erstens, dass ich dir schon helfen konnte,
zweitens hast du mir nicht widersprochen, sondern nur eine andere Variante vorgeschlagen, und
drittens wäre das ja auch kein Problem - jeder kann irren!
Gruß piano

Antwort 7 von micico

hallo piano
zunächst einmal Danke für die Mühe doch leider sind das trotz meiner alten basic-kenntnisse nur böhmische dörfer...
kann man damit mehrere artikel gleichzeitig (bestellnummer nicht reihenfolglich) nach excel bewegen???
ich hab mir die access daten mal angesehen. leider musste ich feststellen, dass es händler gibt, die brutto- und nettopreise angeben, andere händler haben einen ek- multi und wiederum andere arbeiten mit einer zusätzlichen rabattdatei. ich glaube das ist eine ziemlich harte nuss, die ich da knacken möchte... gibt es zu dem thema daten aus access in excel importieren irgendwelche lektüren oder so etwas damit ich mich da reinarbeiten kann????

mfg Michael

Antwort 8 von piano

Hallo
Zu
Zitat:
kann man damit mehrere artikel gleichzeitig (bestellnummer nicht reihenfolglich) nach excel bewegen???
:
Natürlich geht das:
Um die Daten vernünftig herzubekommen, würde ich vorerst eine Abfrage in Access erstellen, die eine Tabelle erstellt, welche als Basis für die EXcel-Ausgabe dienen kann. Die Problematik
Zitat:
dass es händler gibt, die brutto- und nettopreise angeben, andere händler haben einen ek- multi und wiederum andere arbeiten mit einer zusätzlichen rabattdatei.
mußt du jedenfalls in dieser Abfrage lösen.
Ein anderer Ansatz wäre, bei jedem Zugriff auf den Artikel eine Preisfindungsfunktion aufzurufen - wird allerdings dann noch komplizierter!
In dieser Tabelle kannst du dann den Artikel suchen und den Preis eintragen (wo steht der Artikel und nach welchen Kriterien kannst du den Artikel in der Access-DB finden ???. Gibt es auch eine Kundennummer, die für die Preisfindung bzw. Artikelsuche relevant ist ???).
Wenn ich die Aufgabenstellung genauer kenne, kann ich - wenn du willst -weiter helfen.
Gruß
piano

Antwort 9 von micico

hallo piano,
ich glaube eine für mich akzeptable lösung gefunden zu haben. ich habe mit die mühe gemacht die artikel die ich benötige zu kennzeichnen d.h. ich habe in einem freien feld bei allen artikeln ein "x" hinterlegt. soweit ist das ok und ich importiere nun diese daten in ein neues arbeitsblatt. nun tüftele ich noch daran, wie der verweis lautet, dass man eine spalte nach einer bestimmten bestellnummer absucht und dann in der gefundenen zeile den preis ausliest. z.b. findet er in der spalte a100 die bestellnummer soll er aus der zeile b100 den nettopreis auslesen. ist alles ein wenig umständlich, aber ich könnte im moment damit leben da ich die datenabfrage zwar immer wiederholen muß aber das wäre ja nur einmal im monat...

viele grüße
michael

Antwort 10 von piano

Hallo
mit diesem Makro kannst du neben alle Bestellnummern, die in Spalte "A der Tabelle1 liegen die Nettopreise, die in Tabelle2 in Spalte "B" (Best.Nr. in Spalte "A") eintragen:
Sub BestelNummerSuchen()
Application.ScreenUpdating = False
´ Nettopreise
Dim NettoBereich As Range
    Sheets("Tabelle2").Select
    ErsteA2 = 2 ´erste Zeile von Spalte A
    LetzteA2 = Range("A65536").End(xlUp).Row ´ letzte belegte Zeile von Spalte A
    Set NettoBereich = Range(Cells(ErsteA2, 1), Cells(LetzteA2, 1))
´ Bestellnummern
    Sheets("Tabelle1").Select
    B_ErsteA1 = 2 ´erste Zeile von Spalte A
    B_LetzteA1 = Range("A65536").End(xlUp).Row ´ letzte belegte Zeile von Spalte A
For i = B_ErsteA1 To B_LetzteA1
    Sheets("Tabelle1").Select
    BestNr = Cells(i, 1).Value
    Sheets("Tabelle2").Select
    NettoBereich.Select
    Selection.Find(What:=BestNr, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    Netto = ActiveCell.Offset(0, 1).Value
    Sheets("Tabelle1").Select
    Cells(i, 2).Value = Netto
Next i
Application.ScreenUpdating = True
End Sub

Du brauchst lediglich Tabellennamen, Spalten und Beginnzeilen anpassen.

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -

Antwort 11 von micico

Hallo piano,
ich werde mir Deine Lösungsvorschläge mal kopieren und in Ruhe durcharbeiten. Vielen Dank für Deine Mühe.... aber jetzt kommts :-)))))))))))))) ICH HAB´S OHNE VBA GESCHAFFT JUUUUUHUUUUUUUUUU

1. Ich hab allen Artikeln ein "x" als Alternativ-Bestellnummer gegeben (War zwar mühsam aber ich habe die ca. 400 Artikel in etwa 2 Stunden Markiert.

2. Menü Daten -> Externe Daten abfragen -> Neue Datenbafrage erstellen; Alle daten die ich brauche einschl. Alternativ-Bestellnummer, dann nach "x" selektiert und mit Query bearbeitet (ich hab nur die Spalte der Alternativ-Bestellnummer gelöscht) und in meiner Excel-Datei in ein neues Datenblatt geschrieben)

3. enü Daten -> Externe Daten abfragen -> Neue Datenbafrage erstellen; Die Rabattgruppennummer und den Rabatt selektiert und in meiner Excel-Datei in ein weiteres neues Datenblatt geschrieben)

4. Eine =WENN((E6<1);(E6);SVERWEIS(B6;Rabattgruppen!$A$6:$B$3000;2;FALSCH)) Abfrage gemacht, da für die Daten die den Rabatt über die Rabattgruppennummer beziehen als EK-Multi eine 1 stehen haben. Alle EK-Multi < 1 werden direkt übernommen

5. Über eine sverweis Abfrage der Bestellnummer kann ich jetzt meine Bruttopreise und Nettopreise ermitteln....

6. That´s it

7. Viel Spass für alle Anderen, die ein ähnliches Problem haben

8. Warum denn EINFACH, wenn´s auch UMSTÄNDLICH geht

NOCHMALS VIELEN DANK AN PIANO UND PELLE

Gruß
Michael

Antwort 12 von piano

Hallo
Sehr schön!
Das mit dem SVERWEIS wollte ich dir auch emphehlen, da ich aber nicht genau wußte, wie deine Datenkonstellation ist, bin ich mit VBA auf der sichereren (allgemein anwendbaren) Seite.
Gruß piano