Export nach Excel

29/04/2009 - 11:14 von Johann Weiss | Report spam
Hallo,
ich habe ein Problem mit meinen Export nach Excel
bisher habe ich immer die Abfrage exportiert was auch bisher immer
funktioniert hat.
Hier der bestehende Code:
Dim oExcel As Excel.Application, DB As DAO.Database, RS As DAO.Recordset, I
As Long
On Error Resume Next
Err.Clear
Set oExcel = GetObject(, "Excel.Application ")
If Err.Number <> 0 Then Set oExcel = CreateObject("Excel.Application")
On Error GoTo 0
With oExcel
.Visible = True
.Workbooks.Add
.ActiveSheet.Name = CStr(Me!T_Blatt)
' Textfeld wo der Name des Tabellenblatt stehen soll
' Set RS = Me.RecordsetClone
Set DB = CurrentDb
Set RS = DB.OpenRecordset("qry_flexsuche", dbOpenSnapshot) '
qry_flexsuche ist der name der Abfrage
If Me!Spaltenk Then
' hier werden die Spaltenüberschrifen eingblendet
For I = 0 To RS.Fields.Count - 1
.Cells(1, I + 1) = RS.Fields(I).Name
Next I
.Range("A2").Select
Else
.Range("A1").Select
End If
.Selection.CopyFromRecordset RS
If MsgBox("Speichern?", vbYesNo + vbQuestion) = vbYes Then
.ActiveWorkbook.SaveAs Me!FName
' hier wird der Name der Datei abgefragt der gespeichert werden soll.
Else
.ActiveWorkbook.Close SaveChanges:=False
End If
.Quit
End With

Nun meine Frage die Abfrage soll nun nicht mehr auf Basis einer Abfrage
passieren sonder auf Basis eines SQL-String

MakeSQL 'hier wird der SQL-String erstellt oder aufgerufen
Private Sub MakeSQL()
'SQL erstellung
Krit = ""
If Not IsNull(Me!txtAP) Then Krit = Krit & " AND Arbeitsplatz LIKE '" &
Me!txtAP & "*'"
If Not IsNull(Me!txtTyp) Then Krit = Krit & " AND FzgKl LIKE '" &
Me!txtTyp & "*'"
SQL = "SELECT * FROM qry_suchenalles "
If Krit <> "" Then
Krit = MID(Krit, 5)
SQL = SQL & "WHERE " & Krit
If Me!KritAnz Then
GblKrit = Krit
Else
GblKrit = ""
End If
End If
End Sub

Das hier funktioniert ja für das Formular und den Bericht, nur wie binde ich
das in den oberen Code ein.

Gruss Hans
 

Lesen sie die antworten

#1 Gunter Avenius
29/04/2009 - 11:22 | Warnen spam
Hallo Johann,

Johann Weiss schrieb folgendes:
ich habe ein Problem mit meinen Export nach Excel
bisher habe ich immer die Abfrage exportiert was auch bisher immer
funktioniert hat.
Hier der bestehende Code:
Dim oExcel As Excel.Application, DB As DAO.Database, RS As DAO.Recordset, I
As Long
On Error Resume Next
Err.Clear
Set oExcel = GetObject(, "Excel.Application ")
If Err.Number <> 0 Then Set oExcel = CreateObject("Excel.Application")
On Error GoTo 0
With oExcel
.Visible = True
.Workbooks.Add
.ActiveSheet.Name = CStr(Me!T_Blatt)
' Textfeld wo der Name des Tabellenblatt stehen soll
' Set RS = Me.RecordsetClone
Set DB = CurrentDb
Set RS = DB.OpenRecordset("qry_flexsuche", dbOpenSnapshot) '
qry_flexsuche ist der name der Abfrage
If Me!Spaltenk Then
' hier werden die Spaltenüberschrifen eingblendet
For I = 0 To RS.Fields.Count - 1
.Cells(1, I + 1) = RS.Fields(I).Name
Next I
.Range("A2").Select
Else
.Range("A1").Select
End If
.Selection.CopyFromRecordset RS
If MsgBox("Speichern?", vbYesNo + vbQuestion) = vbYes Then
.ActiveWorkbook.SaveAs Me!FName
' hier wird der Name der Datei abgefragt der gespeichert werden soll.
Else
.ActiveWorkbook.Close SaveChanges:=False
End If
.Quit
End With

Nun meine Frage die Abfrage soll nun nicht mehr auf Basis einer Abfrage
passieren sonder auf Basis eines SQL-String

MakeSQL 'hier wird der SQL-String erstellt oder aufgerufen
Private Sub MakeSQL()
'SQL erstellung
Krit = ""
If Not IsNull(Me!txtAP) Then Krit = Krit & " AND Arbeitsplatz LIKE '" &
Me!txtAP & "*'"
If Not IsNull(Me!txtTyp) Then Krit = Krit & " AND FzgKl LIKE '" &
Me!txtTyp & "*'"
SQL = "SELECT * FROM qry_suchenalles "
If Krit <> "" Then
Krit = MID(Krit, 5)
SQL = SQL & "WHERE " & Krit
If Me!KritAnz Then
GblKrit = Krit
Else
GblKrit = ""
End If
End If
End Sub

Das hier funktioniert ja für das Formular und den Bericht, nur wie binde ich
das in den oberen Code ein.

Gruss Hans



Weise den SQL String einer Abfrage zu und verwede diese in Deinem Code
weiter.

strSQL= Dein gebastelter SQL String

Currentdb,Querydefs("qry_flexsuche").SQL= strSQL

' Aufruf Deines bestehenden Codes

Gruß
Gunter
__________________________________________________________
Access FAQ: http://www.donkarl.com

home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de

3. SQL Server-Entwickler-Konferenz - Nürnberg im Mai
http://www.donkarl.com/?SEK

Ähnliche fragen