Office: Access Datenbank in Word Dokument

Helfe beim Thema Access Datenbank in Word Dokument in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; HILFE Ich habe eine Access Datenbank mit dem Namen Personal. Darin sind alle Details jeder einzelner Person (z.B. Name, Vorname, Zimmer, Tel.... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Heimrich, 24. August 2010.

  1. Heimrich Erfahrener User

    Access Datenbank in Word Dokument


    HILFE

    Ich habe eine Access Datenbank mit dem Namen Personal.
    Darin sind alle Details jeder einzelner Person (z.B. Name, Vorname, Zimmer, Tel. us.w.)
    Diese Datenbank ist im Access alphabetisch sortiert und in Gruppen unterteilt.

    Jetzt kommt mein Problem:

    wenn ich einen Brief aufrufe und diese Daten anhand von Button´s einsetzen möchte, kommen diese unsortiert in der Listbox (Visual Basic) an und es wird unübersichtlich, wenn
    eine Gruppe 20 Personen beinhaltet.
    Ich komme einfach nicht dahinter, warum dies so ist.

    Leider bin ich in Visual Basic versiert, kenne nur ein paar Befehle. Kann mir da jemand helfen???????

    Wäre toll

    Das steht am Anfang von VisualBasic

    Dim Namen() 'Lädt Variable in den Speicher, um sie verfügbar zu machen
    Private Sub CommandButton1_Click()
    'Abbrechen-Schaltfläche
    Unload Me 'Makro wird abgebrochen
    End Sub
    Private Sub CommandButton2_Click() 'OK-Button Bringt die Routine, die ausgeführt werden soll, wenn User OK klickt
    Me.Hide 'Läßt Dialog wieder verschwinden
    a = ListBox1.ListIndex ' ListIndex = Nummer für die Zeile, aus der Name in UserForm ausgewählt wurde
    ' Value würde nur den ausgewählten Namen zurückgeben
    EinfügVorname = Namen(a, 1)
    EinfügNachname = Namen(a, 0)
    EinfügAbteilung = Namen(a, 2)
    'Aus Initialize eingefügt
    Set Db = OpenDatabase(Name:="T:\Sachbearbeiter.mdb")
    Set Rs = Db.OpenRecordset(Name:="Personal")
    'in Rs steckt Personaltabelle
    ReDim Namen(Rs.RecordCount - 1, 2) '2 Spalten, genausoviele Zeilen, wie in Personaltabelle, Befehl darf nur benutzt werden, wenn Name vorher mit Dim dimensioniert wurde
    For i = 0 To a - 1 'Schleife gibt die Zahl der Datensätze zurück
    'fields(2) = Vorname-Feld in der Datenbank .Sollen zwei Felder ausgewählt werden: 2 Zeilen
    'Schleife durchführen, bis entspr. Zeile erreicht wird
    Rs.MoveNext 'Fokus wird in nächste Tabellenzeile in der Personal-Tabelle verschoben
    Next i
    EinfügAmt = Rs.Fields(0).Value ' Entsprechende Spalten werden aus Array geholt
    EinfügAbteilung = Rs.Fields(1).Value
    EinfügAbteilungskürzel = Rs.Fields(2).Value
    EinfügAbt2 = Rs.Fields(3).Value
    EinfügAnrede = Rs.Fields(5).Value
    Einfügdurchwahl = Rs.Fields(8).Value
    EinfügFax = Rs.Fields(9).Value
    EinfügStraße = Rs.Fields(10).Value
    EinfügZimmerNr = Rs.Fields(11).Value
    EinfügGeschoß = Rs.Fields(12).Value
    EinfügNächsteBushaltestelle = Rs.Fields(13).Value
    EinfügSZ1 = Rs.Fields(14).Value
    EinfügSZ11 = Rs.Fields(15).Value
    EinfügSZ2 = Rs.Fields(16).Value
    EinfügSZ22 = Rs.Fields(17).Value
    EinfügSZ3 = Rs.Fields(18).Value
    EinfügSZ33 = Rs.Fields(19).Value
    EinfügSZ4 = Rs.Fields(20).Value
    EinfügSZ44 = Rs.Fields(21).Value
    EinfügGeschl = Rs.Fields(22).Value
    EinfügEmail = Rs.Fields(24).Value
    EinfügAdresse = Rs.Fields(23).Value
    Rs.Close
    Db.Close

    Das steht am Ende von VisualBasic

    Private Sub UserForm_Initialize() ' Ruft die Datenbank auf
    ' Kopiert aus der Hilfe und dann angepaßt. Pfad siehe Skript

    Set Db = OpenDatabase(Name:="T:\Sachbearbeiter.mdb")
    Set Rs = Db.OpenRecordset(Name:="Personal")
    'in Rs steckt Personaltabelle

    ReDim Namen(Rs.RecordCount - 1, 2) '2 Spalten, genausoviele Zeilen, wie in Personaltabelle, Befehl darf nur benutzt werden, wenn Name vorher mit Dim dimensioniert wurde

    For i = 0 To Rs.RecordCount - 1 'Schleife gibt die Zahl der Datensätze zurück
    Namen(i, 0) = Rs.Fields(7).Value 'Aus fümftem Feld (Name) der akt. Zeile wird Inhalt angegeben und in die 0/0-Stelle des Namen-Array geschrieben
    Namen(i, 1) = Rs.Fields(6).Value ' Vorname
    Namen(i, 2) = Rs.Fields(1).Value
    Rs.MoveNext 'Fokus wird in nächste Tabellenzeile in der Personal-Tabelle verschoben

    Next i

    Rs.Close
    Db.Close

    ListBox1.List = Namen() 'Füllt ListBox mit angegebenen Werten
    'ListBox1.Sort ExcludeHeader:=False, FieldNumber:="Spalte1", SortFieldType _
    ' :=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, FieldNumber2 _
    ' :="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
    ' wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
    ' wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
    ' wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
    ' :=wdLanguageNone
    ListBox1.ListIndex = 0 ' Voreinstellung, daß in Liste automatisch die erste Zeile marktiert ist. Eine Fehlermeldung unterbleibt dann, wenn User vorschnell OK-Button drückt

    End Sub

    :cry:
     
    Heimrich, 24. August 2010
    #1
  2. Heimrich Erfahrener User
    wer hilft mir

    Heimrich
     
    Heimrich, 24. August 2010
    #2
  3. miriki Erfahrener User
    Was hieraus nicht direkt hervorgeht, was ich aber vermute: In Deiner Datenbank "Sachbearbeiter.mdb" gibt es wohl nur die Tabelle "Personal".

    Und wie es üblich für Datenbanken ist: In welcher Reihenfolge man Daten aus einer Tabelle wieder herausholt, ist undefiniert und Sache der Datenbank-Engine.

    Möchte man Einfluß auf Sortierung, Filterung usw. haben, muß man die Abfragen benutzen. Und eigentlich ist es immer ratsam, nicht direkt mit den Tabellen, sondern nur indirekt über Abfragen zu arbeiten, selbst wenn die Abfrage nur aus "SELECT * FROM tabelle" besteht.

    Der Übersichtlichkeit halber würde ich empfehlen:
    a) Benenne die Tabelle "Personal" um, damit ersichtlich wird, daß es sich um eine Tabelle handelt - "tbl_Personal"
    b) Erstelle eine Abfrage "qry_Personal", die alle Felder beinhaltet und nach dem gewünschten Feld sortiert ist.
    c) Benutze diese Abfrage dann als Datenquelle in Word.

    Dann müßte es eigentlich gehen...

    Gruß, Michael
     
  4. Heimrich Erfahrener User

    Access Datenbank in Word Dokument

    Hallo Michael,

    erst mal vielen Dank für die schnelle Antwort und Sorry, ich war ein paar Tage weg.
    Ich habe alles so gemacht, wie du vorgeschlagen hast, jedoch funktioniert es trotzdem nicht. Die SBDatenbank ist zwar alphabetisch sortiert, jedoch bei der Listbox (im Visual Basic enthalten - auch da steht alphabetisch) kommt´s beim anklicken der SB Daten unsortiert heraus.
    Vielleicht hast du noch eine Idee ????

    Trotzdem erstmanl DANKE
    Heimrich :-?
     
    Heimrich, 2. September 2010
    #4
  5. miriki Erfahrener User
    Was hast Du denn als Datenquelle für die Listbox eingestellt? Das mit dem
    ist nur interessant für die nachfolgende Abarbeitung in der Schleife
    Bereits vorher interessant ist, was
    in dieser ListBox1 als Datenquelle steht. Denn dort wird definiert, welche Daten (und in welcher Reihenfolge) angezeigt werden.

    Ich könnte jetzt vermuten... Unter "ListFillRange" in den Eigenschaften der ListBox1 steht ein Bereich, der auf einem anderen Tabellenblatt liegt. Dort wiederum werden die Daten über "Daten - externe Daten - ..." aus der Access-Tabelle ausgelesen. Und dort wäre dann der Punkt, wo nicht mehr die Tabelle direkt, sondern die (sortierte) Abfrage eingesetzt werden müßte.

    Aber vielleicht ist es auch alles ganz anders... ;-)

    Gruß, Michael
     
  6. Heimrich Erfahrener User
    Hallo Michael,
    kannst du damit was anfangen



    Private Sub CommandButton2_Click() 'OK-Button Bringt die Routine, die ausgeführt werden soll, wenn User OK klickt

    Me.Hide 'Läßt Dialog wieder verschwinden

    A = ListBox1.ListIndex ' ListIndex = Nummer für die Zeile, aus der Name in UserForm ausgewählt wurde
    ' Value würde nur den ausgewählten Namen zurückgeben

    EinfügVorname = Namen(A, 1)
    EinfügNachname = Namen(A, 0)
    EinfügAbteilung = Namen(A, 2)

    'Aus Initialize eingefügt
    Set Db = OpenDatabase(Name:="T:\Sachbearbeiter.mdb")
    Set Rs = Db.OpenRecordset(Name:="Personal")
    'in Rs steckt Personaltabelle

    ReDim Namen(Rs.RecordCount - 1, 2) '2 Spalten, genausoviele Zeilen, wie in Personaltabelle, Befehl darf nur benutzt werden, wenn Name vorher mit Dim dimensioniert wurde

    For i = 0 To A - 1 'Schleife gibt die Zahl der Datensätze zurück
    'fields(2) = Vorname-Feld in der Datenbank .Sollen zwei Felder ausgewählt werden: 2 Zeilen
    'Schleife durchführen, bis entspr. Zeile erreicht wird
    Rs.MoveNext 'Fokus wird in nächste Tabellenzeile in der Personal-Tabelle verschoben
    Next i
     
    Heimrich, 2. September 2010
    #6
  7. miriki Erfahrener User
    Nicht sehr viel, außer, daß ich jetzt erst über das "UserForm" im Kommentar gestolpert bin.

    Das bedeutet, daß Du dir angucken müßtest, woher die Daten in diesem (welchem auch immer) UserForm kommen, wenn ich das richtig sehe.

    Gruß, Michael
     
Thema:

Access Datenbank in Word Dokument

Die Seite wird geladen...
  1. Access Datenbank in Word Dokument - Similar Threads - Access Datenbank Word

  2. Auslesen Windowsbenutzer in einer Datenbank

    in Microsoft Access Hilfe
    Auslesen Windowsbenutzer in einer Datenbank: Hallo zusammen, wie kann ich auslesen, welcher Windows Benutzer gerade aktuell in einer Datenbank ist? Geht das? Danke Matthias
  3. Access-Datenbank von ander Acc-DB fernbedienen?

    in Microsoft Access Hilfe
    Access-Datenbank von ander Acc-DB fernbedienen?: Hallo, ich prüfe von Datenbank A aus, ob zu den eingegebenen Daten ein passender Datensatz in einer anderen Datenbank ist (verknüpfte Tabelle). Nun würde ich gerne mit einer Schaltfläche die...
  4. Datenbank erstellung

    in Microsoft Access Hilfe
    Datenbank erstellung: Hallo, da ich mich nicht so gut mit Access auskenne, wollte ich mal fragen, ob es hier jemanden gibt der mir Helfen kann bzw eine erstellen kann. Vielen Dank
  5. MS ACCESS Insert into Foto in Datenbank

    in Microsoft Access Hilfe
    MS ACCESS Insert into Foto in Datenbank: Hallo. Ich benutze MS ACCESS im Office 365. Habe eine Anwendung geschrieben, in der in einem Formular ein Foto im Typ Bild dargestellt wird. Ich möchte nun dieses Foto mittels einem "Insert...
  6. Microsoft Access 97 Datenbanken zusammenführen

    in Microsoft Access Hilfe
    Microsoft Access 97 Datenbanken zusammenführen: Hallo ich habe die Aufgabe bekommen mehrere Access 97 Dateien zu einer großen zusammenzuführen. Diese Datenbanken werden alle mithilfe dem Program "EBF-Sport" geöffnet und bearbeitet. Ich habe...
  7. Access 2007 Datenbanken lassen sich nicht mehr öffnen

    in Microsoft Access Hilfe
    Access 2007 Datenbanken lassen sich nicht mehr öffnen: Hallo zuammen, das kumulative Update von Windows 10 jetzt im November hat auf meinen PC einen Fehler bei den Farben verursacht, der in verschiedenen Programmen auftrat. So auch bei meinen...
  8. Access-Datenbank nur lesend öffnen?

    in Microsoft Access Hilfe
    Access-Datenbank nur lesend öffnen?: Hallo in die Runde, ich möchte eine Access-Anwendung „read only“ öffnen. Meine erste Idee war, die Datenbank über eine neue Verknüpfung (z.B. auf dem Desktop nebst Startparameter /RO zu öffnen:...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden