Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datumswerte für einen ganzen Monat ausgeben (mit NULL Werten)

Begonnen von SMBR, November 18, 2020, 18:30:54

⏪ vorheriges - nächstes ⏩

ebs17

Zitatanders anzugehen
Ja, ganz anderes zu machen ist auch eine Lösungsstrategie.
ZitatKann ich mit TransferSpreadsheet oder OutputTo oder eine bestehende Tabelle in, oder besser gesagt ab einem bestimmten Bereich die Daten schreiben?
Nein, direkt nicht.
ZitatOder wie sieht es mit dem Befehl CopyFromRecordset aus?
Sehr viel besser.
Mit freundlichem Glück Auf!

Eberhard

SMBR

Zitat von: ebs17 am Dezember 12, 2020, 21:34:10
Zitat von: undefinedanders anzugehen
Ja, ganz anderes zu machen ist auch eine Lösungsstrategie.
Zitat von: undefinedKann ich mit TransferSpreadsheet oder OutputTo oder eine bestehende Tabelle in, oder besser gesagt ab einem bestimmten Bereich die Daten schreiben?

Nein, direkt nicht.

Zitat von: undefinedOder wie sieht es mit dem Befehl CopyFromRecordset aus?
Sehr viel besser.
Ich habe dich in meinem letzten Beitrag versehentlich zitiert. Ich wollte eigentlich einen anderen Beitrag zitieren. Sorry dafür. Du sagst das ist möglich. Verratest mir auch wie? ;) Wo man die Range angeben kann habe ich bereits gefunden. Aber die Auswahl der bestehenden Tabelle bzw Excel Datei habe ich noch nicht herausbekommen?
Grüße aus der Hauptstadt

ebs17

#17
ZitatWo man die Range angeben kann habe ich bereits gefunden.
Man könnte ja auf dem aufbauen, was Du bereits weißt, zumal die Angabe einer Zelle oder eines Bereiches den bekannten Bezug  auf das jeweilige Arbeitsblatt und ein bekanntes Arbeitsblatt eine konkrete Arbeitsmappe nahelegt.

ZitatVerratest mir auch wie?
Da ist kein Verrat nötig.
Im Selbsttest erbrachte eine Google-Suche nach "copyfromrecordset" reichlich 39.000 Treffer. Da dürfte bestimmt schon im ersten Zehntel eine Reihe von Beispielen sein, die jeder verstehen kann.
Mit freundlichem Glück Auf!

Eberhard

SMBR

Zitat von: ebs17 am Dezember 13, 2020, 17:08:23
ZitatWo man die Range angeben kann habe ich bereits gefunden.
Man könnte ja auf dem aufbauen, was Du bereits weißt, zumal die Angabe einer Zelle oder eines Bereiches den bekannten Bezug  auf das jeweilige Arbeitsblatt und ein bekanntes Arbeitsblatt eine konkrete Arbeitsmappe nahelegt.

ZitatVerratest mir auch wie?
Da ist kein Verrat nötig.
Im Selbsttest erbrachte eine Google-Suche nach "copyfromrecordset" reichlich 39.000 Treffer. Da dürfte bestimmt schon im ersten Zehntel eine Reihe von Beispielen sein, die jeder verstehen kann.
Kann ich bestätigen. ich habe mir die 39000 zwar nicht allesamt durchgelesen, aber zumindest so viele, wie nötig waren. Eine Lösung die nicht ganz so umfangreich ist, wäre mich dennoch lieber gewesen.Private Sub Befehl92_Click()
    ExcelExportCopyFromRecordset "qryArbeit_ExcelExcport", PfadStandard() & "Stundenzettel.xls", "Tabelle1", "B7", True
End Sub
Sub ExcelExportCopyFromRecordset(AcTabAbfrSQL As String, _
                                 FullExcelDatName As String, _
                                 ExcelTabName As String, _
                                 ExcelStartZelle As String, _
                                 Löschen As Boolean)
' KEIN Verweis auf Excel notwendig
' Access97, Excel97 getestet
    Dim xlApp As Object, xlBook As Object, xlSheet As Object
    Dim AktDb As DAO.Database, rs As DAO.Recordset
   
    Set AktDb = CurrentDb
   ' Excel datei öffnen ohne Fehlerbehandlung
    On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")
    If xlApp Is Nothing Then
        Set xlApp = CreateObject("Excel.Application")
    End If
    On Error GoTo 0
    Set xlBook = xlApp.Workbooks.Open(FullExcelDatName)
    Set xlSheet = xlBook.Sheets(ExcelTabName)
    ' Testphase mit anschauen
    'xlApp.Visible = True
    Set rs = AktDb.OpenRecordset(AcTabAbfrSQL)
    ' rechteckigen Bereich löschen bis Ende löschen
    If Löschen Then
        xlSheet.Range(ExcelStartZelle, Mid(xlSheet.UsedRange.Address, _
                      InStr(xlSheet.UsedRange.Address, ":") + 1)).Delete
    End If
    ' rechteckigen Bereich schreiben
    xlSheet.Range(ExcelStartZelle).CopyFromRecordset rs
    'oder Excel speichern und schließen
'    xlBook.Save
'    xlBook.Close
    Set rs = Nothing
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
End Sub


Seis drum, wenigstens die Angelegenheit ist dennoch erledigt.
Danke für deine Hilfe!!!
Beste Grüße