Datum als Tabelnaam

Status
Niet open voor verdere reacties.

janbanaan

Nieuwe gebruiker
Lid geworden
22 okt 2006
Berichten
4
Is het mogelijk een Make-Table Query uit te voeren, en dan de aangemaakte tabel automatisch te laten vernoemen naar de huidige datum?

Dank alvast!
 
En zou je mij dan misschien wat uitleg willen geven? Ik werk regelmatig met Access, maar tot nu toe kon ik het altijd zonder VBA.
 
ik heb een functie voor je gemaakt, die je moet plakken in een module. Vervolgens deze functie uitvoeren, en er wordt een nieuwe tabel aangemaakt.

in de sql-string vervang je 'Detabel' door de tabelnaam die je wil backuppen, en de nieuwe naam wordt 'Denieuwetabel_20061105'. Deze moet je uiteraard aanpassen naar jouw tabelnamen.


Code:
function Maaktabel
dim StrSQL as string
Strsql="SELECT Detabel.* INTO Denieuwetabel_" & format(date,"yyyymmdd")  & " FROM Detabel"

docmd.runsql strSQL, dbfailonerror
end function
 
:thumb: Het werkt!

Alleen is voor mij nog niet helemaal duidelijk hoe Modules werken.

Ik heb de code gecopy-paste in een nieuwe Module, dat opgeslagen, en toen wilde ik de module gaan uitvoeren dmv dubbel te klikken op de module. Dát werkte niet, want ik werd weer terug naar de VBA-editor geleid.

Uiteindelijk is het me gelukt via een Macro, 'Procedure Uitvoeren', en dan de bijbehorende module met functie zoeken.

Is dat dé manier hoe je met functies/modules om moet gaan, of doe ik het nu erg omslachtig?

Het is me nog steeds niet helemaal duidelijk. Zo kamp ik ook met het volgende probleem. Deze functie ( http://www.danielklann.com/access/export_an_access_table.htm ) wil ik ook graag implementeren in Access. Ik heb hem gecopy-paste in een Module.

Module vervolgens bewaard, via Macro benader ik de functie, waarna ik 3 parameters moet invoeren. Dit doe ik (gescheiden via ; ), vervolgens krijg ik een of andere error (Kan de naam ExportToExcel [tabelnaam] niet vinden...)


Deze functienaam heb ik ingegeven: ExportToExcel (TABELNAAM; C:\Test.XLS; Werkbladnaam)

Wat doe ik fout. Of moet ik in de code zelf nog iets wijzigen?


Voor de duidelijkheid de functiecode nog eens:

Code:
Public Function ExportToExcel(TableName As String, FilePathname As String, _
Optional SheetName As String) As Boolean

'ExportToExcel function written by Daniel Klann, November 2003
'Exports a specified query or table to a specified file. If the file
'already exists then that file will be used, otherwise the file will be created.

Dim oRS As Object, oExcelApp As Object, lngFieldCounter As Long
Dim blnFileExists As Boolean, blnExcelRunning As Boolean, oTargetSheet As Object

On Error GoTo errHandler

'Firstly, open the recordset. The TableName argument can be either a table name or
'a valid SQL statement.
Set oRS = CreateObject("Adodb.RecordSet")
oRS.Open TableName, CurrentProject.Connection, 0, 1

'Get an instance of Excel. Use a running instance if one exists or create one if not.
On Error Resume Next
Set oExcelApp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
blnExcelRunning = False
Set oExcelApp = CreateObject("Excel.Application")
Else
blnExcelRunning = True
End If
On Error GoTo errHandler

'Now see if the specified file exists or create it if not.
If Dir(FilePathname) <> "" Then
blnFileExists = True
oExcelApp.Workbooks.Open Filename:=FilePathname
Else
oExcelApp.Workbooks.Add
End If

'Get a reference to the sheet we're going to dump the data into. If it already exists
'then use that, otherwise add a sheet and name it.

If IsEmpty(SheetName) = False Then

On Error Resume Next
Set oTargetSheet = oExcelApp.ActiveWorkbook.Sheets(SheetName)

If Err.Number <> 0 Then
Set oTargetSheet = oExcelApp.ActiveWorkbook.Sheets.Add
oTargetSheet.Name = SheetName
End If

Else

Set oTargetSheet = oExcelApp.ActiveWorkbook.Sheets.Add

End If


On Error GoTo errHandler

'This loop will place the recordset field names into row 1 of the worksheet
For lngFieldCounter = 1 To oRS.Fields.Count
oTargetSheet.Cells(1, lngFieldCounter) = oRS.Fields(lngFieldCounter - 1).Name
Next lngFieldCounter


oTargetSheet.Range("A2").CopyFromRecordset oRS
oRS.Close

'Now save the Excel workbook and clean up
If blnFileExists Then
oExcelApp.ActiveWorkbook.Save
Else
oExcelApp.ActiveWorkbook.SaveAs Filename:=FilePathname
End If

oExcelApp.ActiveWorkbook.Close

If Not blnExcelRunning Then
oExcelApp.Quit
Set oExcelApp = Nothing
End If

Set oRS = Nothing
ExportToExcel = True
Exit Function


errHandler:
ExportToExcel = False
End Function
 
Ik kreeg een berichtje dat ik moest aangeven of mijn vraag opgelost was. Deels dus, want het bovenstaande staat nog open.

Iemand?
 
ik zou beginnen om de functie achter een knop te plakken onder de bijklikken trigger en de functie dan aan te roepen met comma gescheiden parameters en de strings tussen quotes
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan