Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SQL-Abfrage nach VBA "konvertieren"

689 views
Skip to first unread message

Müller@discussions.microsoft.com Heinz Müller

unread,
Feb 14, 2008, 11:44:05 AM2/14/08
to
Hallo,

Situation: Ich habe eine Auswahlabfrage (8 verknüpfte Variablen), die die
Ergebnisse in einem Textfeld anzeigt (sprich: Datensatzherkunft des
Textfeldes aus einer Abfrage), in sql erstellt.
Folgende Problemstellung: Ich muss die Datensatzherkunft aber in vba
erstellen, wie bekomme ich diese sql Anweisung in vba "konvertiert":


SELECT Personal.Kartennummer, Personal.Nachname, Personal.Vorname,
Personal.Personalnummer, Personal.Team, Personal.Kostenstelle,
Personal.Zutrittsgruppe, Personal.Bemerkung
FROM Personal
WHERE (((Personal.Kartennummer) Like
[forms].[Formular1].[ParameterKartennummer] & "*") AND ((Personal.Nachname)
Like [forms].[Formular1].[ParameterNachname] & "*") AND ((Personal.Vorname)
Like [forms].[Formular1].[ParameterVorname] & "*") AND
((Personal.Personalnummer) Like [forms].[Formular1].[ParameterPersonalnummer]
& "*") AND ((Personal.Team) Like [forms].[Formular1].[ParameterTeam] & "*")
AND ((Personal.Kostenstelle) Like [forms].[Formular1].[ParameterKostenstelle]
& "*") AND ((Personal.Zutrittsgruppe) Like
[forms].[Formular1].[ParameterZutrittsgruppe] & "*") AND
((Personal.Bemerkung) Like [forms].[Formular1].[ParameterBemerkung] & "*"));


Da ich so gut wie keine Ahnung von vba habe hoffe ich, das mir jemand von
euch weiterhelfen kann.
Ich hab´s mit Private Sub Liste99_BeforeUpdate(Cancel As Integer)
Dim sqlcmd As String
sqlcmd = "hier der obrige sql-code"
DoCmd.RunSQL sqlcmd
End Sub

probiert, ohne Erfolg.

Brauche quasi alles zwischen Private Sub Liste99_BeforeUpdate(Cancel As
Integer) und End Sub.


Mit freundlichen Grüßen


Heinz Müller

Thomas Möller

unread,
Feb 14, 2008, 11:59:01 AM2/14/08
to
Hallo Heinz,

Heinz Müller <Heinz Müll...@discussions.microsoft.com> schrieb:

es sollte funktionieren, wenn Du eine gespeicherte Abfrage verwendest.
Dann kommst Du vollkommen ohne VBA-Code aus.

HTH
--
Thomas

Homepage: www.Team-Moeller.de

Gunter Avenius

unread,
Feb 14, 2008, 11:57:53 AM2/14/08
to
Hallo Heinz,

Heinz Müller schrieb folgendes:

> Situation: Ich habe eine Auswahlabfrage (8 verknüpfte Variablen), die die
> Ergebnisse in einem Textfeld anzeigt (sprich: Datensatzherkunft des
> Textfeldes aus einer Abfrage), in sql erstellt.
> Folgende Problemstellung: Ich muss die Datensatzherkunft aber in vba
> erstellen, wie bekomme ich diese sql Anweisung in vba "konvertiert":
>
> SELECT Personal.Kartennummer, Personal.Nachname, Personal.Vorname,
> Personal.Personalnummer, Personal.Team, Personal.Kostenstelle,
> Personal.Zutrittsgruppe, Personal.Bemerkung
> FROM Personal
> WHERE (((Personal.Kartennummer) Like
> [forms].[Formular1].[ParameterKartennummer] & "*") AND ((Personal.Nachname)
> Like [forms].[Formular1].[ParameterNachname] & "*") AND ((Personal.Vorname)
> Like [forms].[Formular1].[ParameterVorname] & "*") AND
> ((Personal.Personalnummer) Like [forms].[Formular1].[ParameterPersonalnummer]
> & "*") AND ((Personal.Team) Like [forms].[Formular1].[ParameterTeam] & "*")
> AND ((Personal.Kostenstelle) Like [forms].[Formular1].[ParameterKostenstelle]
> & "*") AND ((Personal.Zutrittsgruppe) Like
> [forms].[Formular1].[ParameterZutrittsgruppe] & "*") AND
> ((Personal.Bemerkung) Like [forms].[Formular1].[ParameterBemerkung] & "*"));

Ersetze alle Anführungszeichen ( " ) duch Hochkommas ( ' )
sqlcmd="SELECT ...."

und probiere es so.

DoCmd.RunSQL kann keine Auswahlabfragen ausführen.

Ein Textfeld hat keine Datensatzherkunft.

Was willst Du mit den Datensätzen anfangen welche Dir die SQL
Auswahlabfrage zurückliefert?

Gruß
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de

SQL Server-Entwickler-Konferenz: www.donkarl.com/?SEK
Sa/So 12./13.04.2008 und Sa/So 19./20.04.2008

Heinz Müller

unread,
Feb 14, 2008, 1:02:01 PM2/14/08
to
> es sollte funktionieren, wenn Du eine gespeicherte Abfrage verwendest.
> Dann kommst Du vollkommen ohne VBA-Code aus.
>
> HTH
> --
> Thomas
>
> Homepage: www.Team-Moeller.de
>

Das funktioniert ja auch, nur öffnet sich beim Start dummerweise auch ein
Fenster mit der Abfrage-Tabelle, deswegen will ich es in vba haben, das die
Daten nur im Listenfeld ausgegeben werden, ohne zusätzlichem Fenster. Oder
gibt es eine Möglichkeit das Öffnen dieses Fensters zu unterdrücken? Wenn
nicht, brauch ich es wohl in vba.

>Was willst Du mit den Datensätzen anfangen welche Dir die SQL
>Auswahlabfrage zurückliefert?
>
>Gruß
>Gunter

"Nur" ansehen bzw. bearbeiten.


Siehe auch meinen zweiten Thread:
http://www.microsoft.com/office/community/de-de/default.mspx?&lang=de&cr=DE&guid=&sloc=de-de&dg=microsoft.public.de.access&p=1&tid=90bcac06-4586-4218-ba70-c6321acdefc1

Thomas Möller

unread,
Feb 14, 2008, 4:44:04 PM2/14/08
to
Hallo Heinz,

Heinz Müller <Heinz...@discussions.microsoft.com> schrieb:


>> es sollte funktionieren, wenn Du eine gespeicherte Abfrage
>> verwendest. Dann kommst Du vollkommen ohne VBA-Code aus.
>

> Das funktioniert ja auch, nur öffnet sich beim Start dummerweise auch
> ein Fenster mit der Abfrage-Tabelle, deswegen will ich es in vba
> haben, das die Daten nur im Listenfeld ausgegeben werden, ohne
> zusätzlichem Fenster. Oder gibt es eine Möglichkeit das Öffnen dieses
> Fensters zu unterdrücken? Wenn nicht, brauch ich es wohl in vba.

beim ersten Lesen habe ich gedacht, dass da ein Dialog zur Eingabe der
Parameter aufpoppt. Das meinst Du aber nicht - oder?

Bei mir funktioniert eine solche Lösung ohne sich öffnende Fenster.
Kannst Du Bitte noch einmal Deinen "Versuchsaufbau" beschreiben?

CU
--
Thomas

Homepage: www.Team-Moeller.de

Heinz Müller

unread,
Feb 14, 2008, 5:03:00 PM2/14/08
to

"Thomas Möller" schrieb:

> Hallo Heinz,
>
> Heinz Müller <Heinz...@discussions.microsoft.com> schrieb:
> >> es sollte funktionieren, wenn Du eine gespeicherte Abfrage
> >> verwendest. Dann kommst Du vollkommen ohne VBA-Code aus.
> >
> > Das funktioniert ja auch, nur öffnet sich beim Start dummerweise auch
> > ein Fenster mit der Abfrage-Tabelle, deswegen will ich es in vba
> > haben, das die Daten nur im Listenfeld ausgegeben werden, ohne
> > zusätzlichem Fenster. Oder gibt es eine Möglichkeit das Öffnen dieses
> > Fensters zu unterdrücken? Wenn nicht, brauch ich es wohl in vba.
>
> beim ersten Lesen habe ich gedacht, dass da ein Dialog zur Eingabe der
> Parameter aufpoppt. Das meinst Du aber nicht - oder?

Nein.

> Bei mir funktioniert eine solche Lösung ohne sich öffnende Fenster.
> Kannst Du Bitte noch einmal Deinen "Versuchsaufbau" beschreiben?
>
> CU
> --
> Thomas
>
> Homepage: www.Team-Moeller.de
>
>

Hallo Thomas,

ich habe 8 Textfelder die als AND miteinender verknüpft sind um die Suche
einzugrenzen. Dies ist als Abfrage gespeichert, das Listenfeld hat als
Datensatzherkunft eben diese Abfrage. Beim Start des Formulares/Datenbank
wird im Listenfeld die komplette Datenbank dargestellt (so wie es sein soll,
da die Suche ja noch nicht eingegrenzt wurde), aber gleichzeitig wird die
komplette Datenbank auch in einem anderem Fenster in der Datenblattansicht
geöffnet. Dieses Fenster ist das unerwünschte Problem.

mfg

Heinz

Thomas Möller

unread,
Feb 15, 2008, 11:40:14 AM2/15/08
to
Hallo Heinz,

Heinz Müller <Heinz...@discussions.microsoft.com> schrieb:


>> Bei mir funktioniert eine solche Lösung ohne sich öffnende Fenster.
>> Kannst Du Bitte noch einmal Deinen "Versuchsaufbau" beschreiben?
>

> ich habe 8 Textfelder die als AND miteinender verknüpft sind um die
> Suche einzugrenzen. Dies ist als Abfrage gespeichert, das Listenfeld
> hat als Datensatzherkunft eben diese Abfrage. Beim Start des
> Formulares/Datenbank wird im Listenfeld die komplette Datenbank
> dargestellt (so wie es sein soll, da die Suche ja noch nicht
> eingegrenzt wurde), aber gleichzeitig wird die komplette Datenbank
> auch in einem anderem Fenster in der Datenblattansicht geöffnet.
> Dieses Fenster ist das unerwünschte Problem.

ist da noch VBA-Code im Spiel?
Wenn ja, wie lautet der konkrete Code?

0 new messages