Daten nach einen bestimmten feld auswählen

hallo
ich hab einen Tabelle mit mehreren Datensätzen [logisch :smile:].
zu dieser Tabelle gehört noch ein Kombifeld in dem man den Nutzer auswählen kann.
Dann hab ich da ein Optionsfeld wenn dieses markiert ist sollen aus der Tabelle nur die Datensätze des Nutzers der im Kombifeld ausgewählt wurde angezeigt werden ansonsten sollen alle anderen Datensätze angezeit werden.
Wie mach ich das am dümmesten?
Hier schonmal mein Ansatz:

Private Sub Option227_Click()
If Option227.Value Then

End If
End Sub

ist nicht grad viel aber naja. :smile:

wkr ths

Hallo,

Option Explicit
Dim Db As Database
Dim Rst As Recordset 

Private Sub Command1\_Click()
 Dim Sql As String

 Set Db = OpenDatabase(FileName)
 Sql = "SELECT \* FROM Fragen WHERE Grad = 1;"
 Set Rst = Db.OpenRecordset(Sql)
 Set Data1.Recordset = Rst
....

ein Ausschnitt aus einem Programm, das ein ähnliches Problem löst. Das Recordset beinhaltet dann alle Fragen die mit dem Grad1 eingestuft sind … mein Sohn hat zur Übung ein WWM geschrieben :smile:

Hilft das?

Gruß, Rainer

Hallo ,
hmm die Idee is gut nru wirklich viel weiter hilft mir das auch nich klappt nich so wirklich oder ich bin einfach zu doof dazu :frowning:
trotzdem Danke
wkr ths

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

hmm die Idee is gut nru wirklich viel weiter hilft mir das
auch nich klappt nich so wirklich oder ich bin einfach zu doof
dazu :frowning:

??? was klappt nicht? Du mußt doch nur noch Deine Pfade und Namen eintragen. Der SQL-String dürfte dann etwa so aussehen …

Sql = "SELECT \* FROM DeineTabelle WHERE DeinFeld = '" & Trim(DeinComo.List(DeinCombo.Listindex)) & "';"

Was klappt daran nicht? Etwas genauer sollte die Fehlerbeschreibung schon sein.

Gruß, Rainer

Hallo,

mal noch ein ganz anderer Kommentar. Wenn

Private Sub Option227\_Click()

bedeutet, daß Du 227 Optionsschaltflächen hast, hast Du noch ganz andere Probleme und ganz andere Sachen falsch gemacht. Die IDE wird Dir bald erklären, daß Dein Programm nicht ausgeführt werden kann, weil Du zu viele Steuerelemente auf der Form hast. Befasse Dich mal mit Steuerelementfeldern und schreibe Dein Programm um.

Gruß, Rainer

also
hab das jetzt einmal so probiert
sql = „SELECT * FROM [F-UF Call Erfassung] WHERE [F-UF Call Erfassung] = '“ & Trim([CD_MA_ID].List([CD_MA_ID].ListIndex)) & „’;“
und einmal so probiert
sql = „SELECT * FROM [F-UF Call Erfassung] WHERE [F-UF Call Erfassung] = [CD_MA_ID]’“ & Trim([CD_MA_ID].List([CD_MA_ID].ListIndex)) & „’;“

und da sagt er nur fehler beim kompellieren
???

bin jetzt irgendwie verwirrt

ähm das is nich mein programm, sondern um genau zu sein is es ne zeiterfassungsdatenbank und die hab nich ich erstellt ich soll se bloß ändern

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

wenn Du wieder Code postest, verwende bitte den

Tag, dann ist der leichter zu lesen.

Ich trage mal Sterne ein, wo z.B. „C:\Test.mdb“ stehen sollte.

hab das jetzt einmal so probiert
sql = „SELECT * FROM ****** WHERE [F-UF Call
Erfassung] = '“ & Trim([CD_MA_ID].List([CD_MA_ID].ListIndex))
& „’;“

Und Rauten, wo Ein Feldname stehen sollte.

und einmal so probiert
sql = „SELECT * FROM [F-UF Call Erfassung] WHERE ###### = [CD_MA_ID]’“ &
Trim([CD_MA_ID].List([CD_MA_ID].ListIndex)) & „’;“

und da sagt er nur fehler beim kompellieren

SQL weiß mit Deinen Eckigen Klammern nichts anzufangen. Wenn Du Variablen verwenden Willlst, oder das ergebnis einer Funktion eintragen willst, dann Mußt Du den String zerlegen und zusammensetzen. Eine Variable direkt eintragen gaht an der Stelle nicht. Leerzeichen versteht SQL übrigens auch nicht. Ich hoffe, Deine Feldnamen und der Name der Datenbank beinhalten keine Leerzeichen.
Setze doch mal hinter diese Zeile einen Stoppunkt und sieh nach, wie der SQL-String am Ende aussieht.

Gruß, Rainer

Hallo,

ähm das is nich mein programm, sondern um genau zu sein is es
ne zeiterfassungsdatenbank und die hab nich ich erstellt ich
soll se bloß ändern

ach so. Na, hoffentlich war die nicht zu teuer. :smile: Danke für den Tipp, ich bekomme demnächst auch so etwas. Da sehe ich gleich mal nach, ob da auch solche Anfängerfehler drin sind, dann bezahl’ ich die nicht. *fg*

Gruß, Rainer

ahja

wenn Du wieder Code postest, verwende bitte den

Tag, dann ist der leichter zu
lesen.

jo geht klar merk ich mir

Ich trage mal Sterne ein, wo z.B. „C:\Test.mdb“ stehen sollte.

hab das jetzt einmal so probiert
sql = „SELECT * FROM ****** WHERE [F-UF Call
Erfassung] = '“ & Trim([CD_MA_ID].List([CD_MA_ID].ListIndex))
& „’;“

Und Rauten, wo Ein Feldname stehen sollte.

und einmal so probiert
sql = „SELECT * FROM [F-UF Call Erfassung] WHERE ###### = [CD_MA_ID]’“ &
Trim([CD_MA_ID].List([CD_MA_ID].ListIndex)) & „’;“

und da sagt er nur fehler beim kompellieren

SQL weiß mit Deinen Eckigen Klammern nichts anzufangen. Wenn
Du Variablen verwenden Willlst, oder das ergebnis einer
Funktion eintragen willst, dann Mußt Du den String zerlegen
und zusammensetzen. Eine Variable direkt eintragen gaht an
der Stelle nicht. Leerzeichen versteht SQL übrigens auch
nicht. Ich hoffe, Deine Feldnamen und der Name der Datenbank
beinhalten keine Leerzeichen.
Setze doch mal hinter diese Zeile einen Stoppunkt und sieh
nach, wie der SQL-String am Ende aussieht.

Moment ich hab so den Eindruck wir reden aneinander vorbei deshalb bevor hier noch mehr Unklarheiten auftreten
bei dem Code handelt es sich um den im Access hinterlegten VB (Makros) und darüber will ich dieses dämliche Feld programmieren da geht das auch mit den klammern & Co und naja da brauch die Pfade ja nich weil die DB ja weiß wo die dinger liegen.

PS.: Niemals Dateien auf Laufwerk C speichern :smile:

Hallo Rainer,

wenn ich das richtig verstanden habe, so muss ich mal wiedersprechen :wink:

Nehmen wir mal an du hast eine Tabelle Namens „Personen“ dort hast du fogende Felder

Vorname
Nachname
Personen ID

und nun möchtest du die person suchen die die ID 15 hat, so hast du ja im Feldnamen ein Leerzeichen. Dies bedeutet glaube wiederrum das du dann den Feldnamen in [] setzen musst :smile:

Bsp.

Select Vorname,Nachname From Personen Where [Personen ID] = 15;

MfG Alex

1 Like

Hallo,

Moment ich hab so den Eindruck wir reden aneinander vorbei
deshalb bevor hier noch mehr Unklarheiten auftreten
bei dem Code handelt es sich um den im Access hinterlegten VB
(Makros)

Es geht um VBA? Nicht um VB6? … Bin schon weg …

PS.: Niemals Dateien auf Laufwerk C speichern :smile:

*g* sicher doch, der Pfad war nur schnell zu tippen.

Gruß, Rainer

ach so. Na, hoffentlich war die nicht zu teuer. :smile: Danke für
den Tipp, ich bekomme demnächst auch so etwas. Da sehe ich
gleich mal nach, ob da auch solche Anfängerfehler drin sind,
dann bezahl’ ich die nicht. *fg

für ne db bezahlen? hackts? sowas wird selber gemacht auch wenns nich perfekt is hauotsache es geht und außerdem kann ja nich jeder so ein superhirn sein

Hi Alex,

ahhh, ja. Man lernt eben nie aus. Feldnamen mit Leerzeichen gibt’s bei mir nicht. :smile:

Gruß, Rainer

… Bin schon weg …

toll

Bei mir auch nicht. Ich hatte das mal nur gesehen und gelesen und ergo auch gemerkt *zwinker*

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

für ne db bezahlen? hackts? sowas wird selber gemacht auch
wenns nich perfekt is hauptsache es geht

wir bekommen eine Eingangskontrolle mit RFID-Chips, die auch die Zeiterfassung erledigt … da ist die Software natürlich mit dabei. Natürlich wird die gekauft! Wenn ich alles selbst machen wollte, müßte ich ja 70 Stunden am Tag arbeiten. :smile:

Gruß, Rainer

Es geht um VBA? Nicht um VB6? … Bin schon weg …

es könnt auch vb.net sein das wäre doch letztendlcih egal das is alles vb und vb is so oder so scheiße

Hallo ths,

lasse mal das progg im Debug Modus durchlaufen und schaue dort wo der Fehler auftritt und was du für eine Fehlerbeschreibung bekommst. Diese poste dann mal bitte. Desweiteren baue mal fix eine Fehlerbehandlungsroutine ein. Übergehe dadurch den Fehler und lasse dir den SQL String mal mit debug.print ausgeben und poste ihn hier einmal :smile:

Desweiteren poste mal bitte welchen Wert denn F-UF Call Erfassung hat. Wo kommt der Wert her? Dort muss dort Name der tabelle stehen in der du die Abfrage starten möchtest!

Als Bsp. könnte die Sub so ausschauen

Private Sub Option227\_Click()
on error goto Fehlerbehandlung
dim sql$
If Option227.Value Then
sql="Select \* FROM [F-UF Call Erfassung] WHERE [F-UF Call Erfassung] Like '" & Trim(CD\_MA\_ID.List(CD\_MA\_ID.ListIndex)) & "';"
debug.print sql
'Dein SQL Befehl ausführen
End If
exit sub
fehlerbehandlung:
 debug.print err.number
 debug.print err.description
 resume next
End Sub

MfG Alex

Wenn ich alles selbst
machen wollte, müßte ich ja 70 Stunden am Tag arbeiten. :smile:

Hier um Unternehmen werden die meißten DB´s selber gemacht zumindest die die ich kenne