Hallo
Ich möchte eine Tabelle sowie eine Abfrage mit VB erstellen. Mit dem Code den ich geschrieben habe, passiert nichts. Kann mir jemand helfen?
Tabelle:
Dim db As Database
Dim td As TableDef
Dim fld As Field
Set db = CurrentDb
Set td = db.CreateTableDef()
td.Name = "Tabelle"
Set fld = td.CreateField("Vorname", dbText, 30)
Abfrage:
Dim qd As QueryDef
Set db = CurrentDb()
Set qd = db.CreateQueryDef("qryTest", "SELECT * From tblAusleiSelekt WHERE ausleih_User_IDF = 1")
Hallo,
und zu was brauchst Du das?
In einer DB sollte es im Regelfall nicht notwendig sein Tabellen und Abfragen per VBA zu erstellen.
PS:
In Access gibt es kein VB, sondern nur VBA, VB ist etwas anderes.
@smily68: Da fehlen Append-Anweisungen.
Vergleiche Strukturänderungen an der Datenbank (http://www.vbarchiv.net/workshop/workshop_83-strukturaenderungen-an-der-datenbank.html)
@MzKlMu: Ich kenne durchaus einige sinnvolle Fälle, wo man selber gezielt Tabellen anlegt - wenn per Standardimport (XL, TXT, XML) eine Importtabelle angelegt wird, hält sich die Aufregung auch in Grenzen, wobei solche Fälle kritischer zu beurteilen sind (am Ende werden ja eine Tabelle und deren Daten kopiert, und dann auch nur für eine temporäre Nutzung).
a) Strukturpflege eines Backends über ein Script, weil man z.B. den zeitlichen exklusiven Zugriff auf ein Netzwerkbackend recht kurz halten will oder Backends pflegen lassen will, zu denen man keine Verbindung hat (externe Lösungen).
b) Anlegen eines temporären Backends mit einer geeigneten Struktur, um über Ablage von Zwischenergebnissen zu einer Performanceverbesserung bei komplexeren Aufgaben zu kommen.
MfGA
ebs
Hallo,
@ebs
Dass das sinnvoll sein kann, ist mir durchaus bewusst. Ich habe ja auch geschrieben im Regelfall wäre es nicht notwendig.
Wobei man natürlich auch definieren müsste, was der Regelfall ist.
Ich wollte ja nur wissen wozu, weil es sich auch zeigt, dass ein solches Vorhaben oftmals der falsche Weg ist und das Hinterfragen für den Fragesteller durchaus lohnend sein könnte.
Hallo
Ich brauche nur eine temporäre Tabelle, so habe ich meinem Accessbuch nachgeschaut und versucht dies nachzubauen. Nun habe ich habe es wie folgt gelöst. Ich habe eine fixe Tabelle erstellt, sowie eine Abfrage welche ich mit einem Code jeweils anpasse. Doch nun habe ich meiner Lösung ein neues Problem.
Me!sfrAusleih.Form.RecordSource = ("SELECT * FROM qryAusleihSelect" 'WHERE ausleih_User_IDF = " & Me!cboUser)
Bei diesem Code kommt mir folgende Fehlermeldung:
Objekt und Klasse unterstützt diese Ereignismenge nicht. Ich habe diesen Code schon in einem anderen Teil meiner Datenbank erfolgreich eingesetzt.
Könnt ihr mir helfen?
Gruss Daniel
Hallo,
nur Syntax des SQL-Strings betrachtet:
Me!sfrAusleih.Form.RecordSource = ("SELECT * FROM qryAusleihSelect WHERE ausleih_User_IDF = " & Me!cboUser)
Hallo
Ich habe nicht den richten Code ins Forum gestellt, es war ein Code an dem getestet habe: Hier der richtige Code bei dem die gleiche Meldung kommt:
Me!sfrAusleih.Form.RecordSource = ("SELECT * FROM qryAusleihSelect WHERE ausleih_User_IDF = " & Me!cboUser)
Meldung: Objekt oder Klasse unterstützt diese Ereignismenge nicht
Gruss Daniel
Hallo,
ok,
lass zunächst noch diese Klammern weg :
Me!sfrAusleih.Form.RecordSource = "SELECT * FROM qryAusleihSelect WHERE ausleih_User_IDF = " & Me!cboUser
sodann: was ist "sfrAusleih" genau?
Hallo
sfrAusleih ist der Name des Steuerelements (Unterformular). sfrAusleih ist auch der Name des Unterformulares welches als Datenquelle qryAusleihSelect hat.
Sinn des Ganzen: Die Datenbank ist ein Bibliothekprogramm. Im Formular frmAusleih / sfrAusleih werden die Bücher erfasst, die ausgelehnt werden möchten. Mit einem Button werden die Daten des entsprechenden Ausleihers selektiert. (Dies passiert mit meinem Code) und anschliessend in eine andere Tabelle als gebucht geschrieben. Die selektierten Datensätze werden anschliessend in dieser Tabelle (tblAusleiSelect) gelöscht.
Gruss Daniel
Hallo,
ich befürchte da ein suboptimales Tabellen-/ bzw. Ablaufkonzept...
Ich nehme an, im Hauptform werden die Ausleiher angezeigt, im Unterform die vom akt. angezeigten Ausleiher ausgeliehenen Bücher.
Wenn so, dann setze die Datenherkunft des UFOs auf die Tabelle "tblAusleiherBücher" und verknüpfe (UFO-Eigenschaften "Verknüpfen von/nach") das UFO über die entspr. Schlüsselfelder.
Hallo
Der Aufbau ist nicht ganz so wie du dir denkst. Mein Formular ist ein Erfassungsformular für die neuen Bücher die ausgelehnt werden. Beim Oeffnen muss das Formular leer sein. Danach wird der Entsprechende Name (Ausleiher) ausgewählt (das geschieht mit einem Kombifeld) danach können die Bücher ausgewählt werden. Mit einem Button wird die Aktion als Ausgeliehen abgeschlossen. Dies ist der Prozess den ich oben beschrieben habe.
Meine Fehlermeldung steht aber aus meiner Sicht nicht im Zusammenhang mit dem Datenmodel. Auf was weisst diese Fehlermeldung hin, was könnte ich falsch gemacht haben?
Gruss Daniel
Hallo,
"Der (Tabellen-) Aufbau ist nicht ganz so wie du dir denkst. "
dann erklär ihn ... ;)
"Mein Formular ist ein Erfassungsformular für die neuen Bücher die ausgelehnt werden."
Ok...
"Beim Oeffnen muss das Formular leer sein."
Ok, wenn Du das so willst.
"..danach können die Bücher ausgewählt werden."
Wie geschieht das? Auch mittels Kombifeld?
"Mit einem Button wird die Aktion als Ausgeliehen abgeschlossen."
Was passiert beim Klick auf diesen Button (Code) ?
"Meine Fehlermeldung steht ..nicht im Zusammenhang mit dem Datenmodel."
das will ich jetzt nicht unterschreiben... Formulare bauen auf Tabellen(strukturen) auf und funktionieren nur dann, wenn eben die Tabellenstrukturen in sich schlüssig sind. Zum Anderen manipulierst Du Eigenschaften von Formularen, die auch von Access unter Umständen (die eben jetzt noch unbekannt sind) "bearbeitet" werden, z. B. die "Verknüpfen von/nach"-Eigenschaften eines UFO-Steuerelementes.
Die Fehlermeldung sagt lediglich aus, dass die Zuweisung/Ausführung des Strings nicht bearbeitet werden kann. Die Ursache dafür ist daraus nicht direkt abzulesen.
Lad die DB hoch, dann könnte besser analysiert werden.