Przykład ten pozwoli Ci korzystać z FileDialog Save-As obiektu:
Aby korzystać z tej funkcji, należy dodać odniesienie do "Microsoft Office XX.0 Object Library". Dodaj nowy moduł i wklej następującą funkcję:
Public Sub exportQuery(exportSQL As String)
Dim db As DAO.Database, qd As DAO.QueryDef
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
Set db = CurrentDb
'Check to see if querydef exists
For i = 0 To (db.QueryDefs.Count - 1)
If db.QueryDefs(i).Name = "tmpExport" Then
db.QueryDefs.Delete ("tmpExport")
Exit For
End If
Next i
Set qd = db.CreateQueryDef("tmpExport", exportSQL)
'Set intial filename
fd.InitialFileName = "export_" & Format(Date, "mmddyyy") & ".csv"
If fd.show = True Then
If Format(fd.SelectedItems(1)) <> vbNullString Then
DoCmd.TransferText acExportDelim, , "tmpExport", fd.SelectedItems(1), False
End If
End If
'Cleanup
db.QueryDefs.Delete "tmpExport"
db.Close
Set db = Nothing
Set qd = Nothing
Set fd = Nothing
End Sub
Teraz w kodzie, w którym chcesz rozpocząć eksport, przeznaczenie: połączeń exportQuery („SELECT * FROM ...”)
polecam definiowanie zmiennej łańcuchowej dla zapytania SQL.
Dzięki, to jest lepsze niż to, co miałem - jednak jestem po polu eksploratora okien, którego użytkownik zwykle używa do wykonania takiej akcji. – user1844098
Ach, wtedy chcesz użyć FileDialog - zobacz tutaj: http://support.microsoft.com/kb/824272 – sgeddes
Gotowy! Dziękuję bardzo! – user1844098