hallo
ich hab einen Tabelle mit mehreren Datensätzen [logisch ].
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
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
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
trotzdem Danke
wkr ths
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
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.
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)) & „’;“
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.
ä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. 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*
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.
wenn ich das richtig verstanden habe, so muss ich mal wiedersprechen
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
Bsp.
Select Vorname,Nachname From Personen Where [Personen ID] = 15;
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
*g* sicher doch, der Pfad war nur schnell zu tippen.
ach so. Na, hoffentlich war die nicht zu teuer. 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
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.
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
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