Tabelmaakquery en doeldatabase

Status
Niet open voor verdere reacties.

ewpkort

Gebruiker
Lid geworden
17 apr 2006
Berichten
12
Hallo,

Ik heb een tabelmaakquery. Bij eigenschappen moet je de doeldatabase opgeven waar de tabel naar weggeschreven moet worden.

Maar kan ik die doeldatabase ook variabel maken? Ik heb de tabelmaakquery achter een knop gezet op een formulier. Bij het klikken op de knop zal gevraagd moeten worden wat de doeldatabase is, waar vervolgens de tabal naar toe wordt geschreven.
Is dit mogelijk?

Groeten,
Edwin
 
Dat kan.
Je zult wel je query om moeten zetten naar VBA.
Daarnaast is het handiger of om je doellokatie in een formulier in te vullen.
Of beter nog, om je doeltabel te selekteren zoals in de Windows Verkenner.
Zoek voor dat laatste eens in het forum, vraag is wellicht al eerder gesteld.

Voor het eerste, maak een formulier.
Zet daarin een tekstveld txtDoeltabel.
Zet een knop op je formulier.
Definieer op je knop een Bij Klikken gebeurtenis.
Zet daarin de code om je query te draaien.
Hoe?
Open je huidige query in SQL weergave.
Kopieer je SQL en zet dat in een DOCmd.RunSQL opdracht, waarbij je de naam en lokatie achter IN vervangt door een variabele die verwijst naar het tekstveld op je formulier:

Code:
DoCmd.SetWarnings False 'bevestigen uitvoeren query uitzetten
DoCmd.RunSQL "SELECT naambrontabel.* INTO naamdoeltabel IN '" & Me.txtDoeltabel & "' FROM naambrontabel;"
DoCmd.SetWarnings True 'bevestigen uitvoeren query weer aanzetten

FESTER
 
Bedankt. Werkt perfect.

Is het ook mogelijk om een nieuwe database te maken? Nu moet er ergens een bestaande database staan.

Groeten,
Edwin
 
Bedankt Fester!

Ik heb nog een paar aanvullende vragen:

Is het ook mogelijk dat de directory waar de database naar toe wordt geschreven automatisch wordt aangemaakt indien deze niet bestaat?

Is het mogelijk om het gegevenstype in te stellen.
Nu heeft een veld bijvoorbeeld als gegevenstype "valuta". In de geexporteerde tabel moet het gegegevsntype "numeriek" worden.

Edwin
 
Is het ook mogelijk dat de directory waar de database naar toe wordt geschreven automatisch wordt aangemaakt indien deze niet bestaat?

Ongetwijfeld zul je via VBA kunnen checken of een bepaalde directory al dan niet bestaat.

Is het mogelijk om het gegevenstype in te stellen.

Zou kunnen via CREATE TABLE.

Je vraagt me een beetje te veel, ik pas.

FESTER
 
Is het ook mogelijk dat de directory waar de database naar toe wordt geschreven automatisch wordt aangemaakt indien deze niet bestaat?

Dat is redelijk eenvoudig als je weet waar je moet zoeken.

strx = CurrentProject.Path & "\Snpapostoli" ' of het path waar de directory zou moeten
' staan
strY = Dir(strx, vbDirectory)
If Len(strY) = 0 Then
MkDir (strx)
End If

en je tweede vraag.
Ik neem aan dat je vanuit de ene database de tabledefs collectie aan kan in de andere database.
Maar het datatype van een veld is volgens mij niet te wijzigen vanuit VBA. Is alleen lezen.
je kunt in de originele tabel het datatype op numeriek zetten en de format op euro en na het exporteren de format wijzigen:

Dim tblCust As DAO.TableDef
Dim fldDef As DAO.Field
Dim fldprop As DAO.Property
Dim dbA As DAO.Database
Dim strnaam As String
strnaam = "testtbl"
Set dbA = CurrentDb()
Set tblCust = dbA.TableDefs(strnaam)
Set fldDef = tblCust.Fields("test")
Set fldprop = fldDef.Properties("Format")
fldprop.Value = "Fixed"

Set fldDef = Nothing
Set tblCust = Nothing
Set dbA = Nothing
Set fldprop = Nothing

gregor
gregor
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan