Thema Datum  Von Nutzer Rating
Antwort
Rot Excel-VBA in Access-VBA konvertieren
17.04.2012 14:08:28 Christian
NotSolved

Ansicht des Beitrags:
Von:
Christian
Datum:
17.04.2012 14:08:28
Views:
1410
Rating: Antwort:
  Ja
Thema:
Excel-VBA in Access-VBA konvertieren

Hallo, ich habe folgendes Problem (Excel /Access 97): 

Es besteht eine Access-Datenbank mit mehreren Tabellen aus denen jeweils mehrere XSDs erzeugt werden sollen. Um das zu schaffen, hat man bisher die Tabellen händisch in eine Excel-Datei kopiert. Dort wurden dann bestimmt VBA-Makros ausgeführt, um daraus mehrere XSDs zu generieren.

Die manuelle und umständliche Excel-Komponente soll nun aber möglichst eliminiert werden, so dass die XSDs direkt aus Access erzeugt werden können. Ein einfaches Exportieren funktioniert nicht, da aus EINER Tabelle MEHRERE XSDs erzeugt werden müssen, was eben über die erwähnten Makros erfolgt.

Hier mal ein Code-Auszug:

 

 

'------------------------
'--Variablendeklaration--
'------------------------
Dim dateiname As String                 'speichert Namen des Arbeitsblattes
Dim verzeichnis As String               'speichert Verzeichnisangabe
Dim ordner As String                    'speichert Ordnerangabe innerhalb des Verzeichnisses
    
Dim cf As Object

Dim i As Integer                        'innere Schleife
Dim e As Integer                        'äußere Schleife
Dim anfang As Integer                   'speichert Spaltennummer des ersten Service
Dim ende As Integer                     'speichert Spaltennummer des letzten Service
Dim count As Integer                    'speichert Anzahl der Arbeitsblätter


Dim prgmAbbruch As Boolean
Dim last_service As Boolean

prgmAbbruch = False

'---------------------
'--Verzeichnisangabe--
'---------------------
verzeichnis = "U:\XSD-Dateien\"
ordner = "U:\XSD-Dateien\DB2-Ladebestand\"


Set cf = CreateObject("Scripting.FileSystemObject")
If (cf.FolderExists(verzeichnis) = False) Then
    cf.CreateFolder (verzeichnis)
End If
If (cf.FolderExists(ordner) = False) Then
    cf.CreateFolder (ordner)
End If

'------------------------
'--Programm-Anweisungen--
'------------------------
count = ActiveWorkbook.Worksheets.count                             'Alle Arbeitsblätter des Workbooks zählen

'Alle Arbeitsblätter durchlaufen vom ersten bis zum vorher festgelegten letzten
For e = 1 To count
    
    i = 1
    
    last_service = False
    
    'Der Name des aktuellen Arbeitsblattes wird in Variable "Name" gespeichert
    Worksheets(e).Activate
    dateiname = ActiveSheet.name
    
    'Ausgabeordner für die einzelnen Arbeitsblätter werden erstellt, wenn sie noch nicht existieren
    If (cf.FolderExists(ordner + dateiname) = False) Then
        cf.CreateFolder (ordner + dateiname)
    End If
        
    'Schleife wird solange durchlaufen bis Booleanvariable "count" auf true gesetzt wird (letzter Service erreicht)
    Do
        If (Cells(2, i) = "BOS") Then
            anfang = i                                              'Spaltennummer des ersten Service wird in Variable "anfang" gespeichert
        ElseIf (Cells(2, i) = "BOS/EOS") Then
            anfang = i
            ende = i
            last_service = True
        ElseIf (Cells(2, i) = "EOS") Then
            ende = i                                                'Spaltennummer des letzten Service wird in Variable "ende" gespeichert
            last_service = True
        End If
        i = i + 1
    Loop While (last_service = False)
        
    'Von "anfang" bis "ende" wird die aktuelle Spaltennummer und der Name des aktuellen Ordners an das Unterprogramm "Auslesen" übergeben
    For i = anfang To ende
        Call Auslesen(i, dateiname, ordner, anfang, prgmAbbruch)
        If prgmAbbruch = True Then
            Exit For
        End If
    Next i
    If prgmAbbruch = True Then
        Exit For
    End If
Next e

End Sub

 

Nun zu meiner Frage: Weiß jemand wie man den Code in Access zum laufen bekommt bzw. ob das überhaupt geht? Wie gesagt Excel sollte dabei möglichst nicht mehr verwendet werden, sondern direkt alles aus Access heraus.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Excel-VBA in Access-VBA konvertieren
17.04.2012 14:08:28 Christian
NotSolved