Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: smily68 am Februar 02, 2013, 10:01:40

Titel: Tabelle / Abfrage mit VB erstellen
Beitrag von: smily68 am Februar 02, 2013, 10:01:40
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")
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: MzKlMu am Februar 02, 2013, 10:29:41
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.
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: ebs17 am Februar 02, 2013, 12:20:42
@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
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: MzKlMu am Februar 02, 2013, 18:19:33
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.
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: smily68 am Februar 04, 2013, 17:39:47
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
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: DF6GL am Februar 05, 2013, 08:59:30
Hallo,

nur Syntax des SQL-Strings betrachtet:


Me!sfrAusleih.Form.RecordSource = ("SELECT * FROM qryAusleihSelect  WHERE ausleih_User_IDF = " & Me!cboUser)

Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: smily68 am Februar 05, 2013, 14:08:19
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
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: DF6GL am Februar 05, 2013, 15:19:24
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?
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: smily68 am Februar 05, 2013, 17:15:56
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
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: DF6GL am Februar 05, 2013, 17:41:23
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.

Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: smily68 am Februar 06, 2013, 08:11:06
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
Titel: Re: Tabelle / Abfrage mit VB erstellen
Beitrag von: DF6GL am Februar 06, 2013, 08:44:10
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.