MS Access und MS Excel Tabellen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von KingKa0s, 3. April 2006 .

  1. 3. April 2006
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    Hi,

    also eigentlich handelt es sich mehr um VBA als um VB aber vieleicht kann mir ja trozdem einer helfen.

    Ich muss für die Schule folgendes programmieren:

    per Knopfdruck sollen aus einer vorgegebenen Tabelle in MS Access alle Feldnamen ausgelesen werden und untereinander in einer neuen Excel-Arbeitsmappe aufgelistet werden. Dann sollen die die Inhalte der ersten Spalte aus der Access-Tabelle in der Excel-Tabelle nebeneinander aufgelistet werden und automatisch fett formatiert.

    Am besten ich mach mal n Bild davon ^^

    problem5ey.gif
    {img-src: //imageshack.us/a/img138/497/problem5ey.gif}


    da ich aber n absoluter VB / VBA noob bin hoffe ich, dass mir jemand den code schreiben kann


    10er ist für jede hilfe selbstverständlich
     
  2. 4. April 2006
    Mahlzeit Meister,
    bis wann musste das haben?
    Sind die Feldbezeichner die, die auch inder tatsächlichen Access-db vorhanden sind?
    Steht irgendwas da drin, ob ihr die DAO Objekt Bibliothek benutzen dürft oder nicht?

    Gruß Resus
     
  3. 4. April 2006
    naja Donnerstag sollte ich das haben, damit ichs Freitag fertig machen kann und dann abgeben, es dürfen alle Bibliotheken benutzt werden.
     
  4. 4. April 2006
    Ok, habs soweit fertig. Muss jetzt aber noch zu einer Vorlesung. Heute abend mach ich noch den Feinschliff und dann stell ich's hier rein.

    Habe ich denn jetzt alles richtig verstanden: Alle Daten aus einer Tabelle der Datenbank auslesen, quasi Zeilen und Spalten vertauschen und dann die erste Zeile fett, ja??!
     
  5. 4. April 2006
    jup hast alles richtig verstanden

    und big thx, hast mir das leben gerettet, 10er geht ja leider nit mehr :baby:
    aber wenn du im ICQ online kommst schreib mich mal an, dann hab ich ne andere "belohnung" für dich
     
  6. 4. April 2006
    So, ich glaube/hoffe das ich nix vergessen habe, müsste aber soweit alles sein:

    Code:
    Sub AccessToExcel(DBFullName As String, TableName As String)
    
    Dim db As Database, rs As Recordset
    Dim fld As Field
    Dim row As Long
    Dim col As Long
     
    row = 1
    col = 1
     
    Set nSheet = Sheets.Add(Type:=xlWorksheet) 'Neues Arbeitsblatt erstellen
    Set db = OpenDatabase(DBFullName) 'Datenbank öffnen
    Set rs = db.OpenRecordset(TableName, dbOpenSnapshot) 'RecordSet aus einer "Momentaufnahme" _
     der gesamten Tabelle erstellen
     
    With rs
     If Not .BOF Then .MoveFirst 'Wenn Daten im Recordset vorhanden, dann gehe zum 1. Datensatz
    
    ' Erste Schleife: Auslesen und eintragen der Feldnamen
     For Each fld In .Fields
     
     nSheet.Cells(row, col) = fld.Name
     row = row + 1
     
     Next fld
     
     col = col + 1
     row = 1
    
     While Not .EOF 'Solange noch datensätze vorhanden sind
     
     ' Zweite Schleife: Auslesen und eintragen der einzelnen Datensätze
     For Each fld In .Fields
     nSheet.Cells(row, col) = fld
     row = row + 1
     Next fld
     
     col = col + 1
     row = 1
     .MoveNext
     Wend
     
    End With
     
    nSheet.Rows(1).Font.Bold = True 'Erste Zeile fett
     
    'Aufräumen
    Set rs = Nothing
    db.Close
    Set db = Nothing
    
    End Sub
    Knallst dir einfach über die Steuerelement-Toolbox-Symbolleiste einen Button rein und rufst die Methode wie folgt auf:
    Code:
    AccessImportModule.AccessToExcel "C:\Ordner\db.mdb", "NameDerAccessTabelle"
    Die Tatsache mit den zwei Schleifen gefällt mir zwar nicht alzu gut, aber da die Daten spaltenweise in das Arbeitsblatt geschrieben werden viel mir da adhoc nichts besseres ein

    Solltest du einen Fehler bei z.b. "Dim db As Database" bekommen, dann muss du den Verweis zur Microsoft DAO Bibliothek noch setzen. Das kannst du im VB-Editor unter Extras->Verweise... und dort den haken bei "Microsoft DAO x.xx Object Library".

    Im Anhang auch nochmal der Code als fertige BAS-datei (darf ich nicht hochladen, also hab ich sie in txt umbenannt)

    So, falls noch irgendwas unklar oder fehlerhaft ist geb bescheid
    Gruß Resus
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.