vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: SQL-Recordset in eine Exceltabelle übertragen 
Autor: Sina
Datum: 02.02.04 11:34

Hallo,
ich habe dafür ne Funktion geschrieben:
Public Function GeneriereExcel(ByVal SelectString As String, _
                              ByRef ColumNames() As String, _
                              Optional ByVal Teilergebnis As Boolean = False)
Dim errObj As Error
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim strSumSelect As String
Dim eeFileName As String
Dim i As Long
Dim ExcelFileName As String
Dim intRecord As Integer
Dim MaxAnzahl As Double
 
' Start Excel
Screen.MousePointer = vbHourglass
 
On Error Resume Next
If IsNull(xlApp) Then
    Set xlApp = New Excel.Application 'los
Else
    xlApp.Quit
    Set xlApp = New Excel.Application 'nochmal neu
End If
 
On Error GoTo DataAccessError:
 
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add
 
' Überschriften
For i = 0 To UBound(ColumNames)
    xlSheet.Cells(1, i + 1).value = ColumNames(i)
Next i
 
ExcelFileName = "SpeBass_Select.xls"
 
'Öffnet die Datenbankverbindung
OpenIt_AIM
 
sqlstring = SelectString
 
'initialisiert den Recordset
Set rs_AIM = conAdmin_AIM.OpenRecordset(sqlstring, dbOpenSnapshot)
If Not rs_AIM.EOF Then
    With rs_AIM
        intRecord = 2 ' zweite Zeile (erste ist Überschrift)
        Do While Not .EOF
            For i = 0 To UBound(ColumNames)
                xlSheet.Cells(intRecord, i + 1) = .Fields(ColumNames(i)).value
            Next i
 
        intRecord = intRecord + 1
        .MoveNext
        Loop
    End With
'Schliesst die Datenbankverbindung
    CloseIt_AIM
 
        ' Sheet formatieren
        xlSheet.Range("A1:P1").Font.Bold = True
        'xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(intRecord - 1, 
        ' 13)).Font.Size = 10
        'xlSheet.Range(xlSheet.Cells(1, 9), xlSheet.Cells(intRecord - 1, 
        ' 9)).NumberFormat = "#,##0.00"
       ' xlSheet.Range(xlSheet.Cells(1, 11), xlSheet.Cells(intRecord - 1, 
       ' 11)).NumberFormat = "#,##0.00"
        'xlSheet.Range(xlSheet.Cells(1, 12), xlSheet.Cells(intRecord - 1, 
        ' 12)).NumberFormat = "#,##0.00"
        'xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(intRecord - 1, 
        ' 13)).Columns.AutoFit
    '###############
    ' Teilergebnis
    If Teilergebnis = True Then
 
      xlSheet.Range("L4").Select ' Range kann irgendeine Zelle sein...denke ich
      xlApp.Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2, _
        12), _
      Replace:=True, PageBreaks:=False, SummaryBelowData:=True
      xlSheet.Range("L14").Select ' vielleicht kann man das auch weglassen
    End If
Else
  CloseIt_AIM
End If
 
    xlApp.Visible = True
    Screen.MousePointer = vbNormal
 
Exit Function
DataAccessError:
    MsgBox Err.Description
    For Each errObj In Errors
        Debug.Print errObj.Number, errObj.Description
    Next
    xlApp.Visible = True
    'Me.MousePointer = vbDefault
    Resume Next
End Function
Diese Funktion erwartet nen SQL-String, über ColumNames() die Spaltennamen als Array

Vielleicht hilfts Dir ja

Gruss
Sina
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SQL-Recordset in eine Exceltabelle übertragen1.06365437453743sett...01.02.04 19:59
Re: SQL-Recordset in eine Exceltabelle übertragen825Sina02.02.04 11:34
Re: SQL-Recordset in eine Exceltabelle übertragen73965437453743sett...03.02.04 13:21
Re: SQL-Recordset in eine Exceltabelle übertragen786Prian081504.02.04 09:49
Re: SQL-Recordset in eine Exceltabelle übertragen81565437453743sett...04.02.04 18:29
Re: SQL-Recordset in eine Exceltabelle übertragen742me3683505.02.04 07:33
Wenn Du Excel 2000 verwendest725meg04.02.04 09:15

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel