In meiner Datenbank (Access 2002) habe ich u.a. 13 Textfelder (3-stellig), in denen ich Seitenzahlen notiere.
Nicht bei jedem Datensatz sind immer alle 13 Felder mit Seitenzahlen von 1 bis 999 (theoretisch) ausgefüllt - manchmal nur ein Feld, manchmal 8 ....
Wenn ich jetzt herausfinden möchte, in wie vielen Datensätzen ich z.B. die Seitenzahl "30" in einem dieser 13 Felder notiert habe - wie stelle ich das an? (dabei ist zu berücksichtigen, daß die Zahl "30" mal im 1. Feld, mal in 11. Feld etc. stehen kann)
Solange dies so einfach bleibt gäbe es eine ganz "primitive" Möglichkeit.
in einer Abfrage ein neues Feld kreieren; z.B.: Feld99: Feld1 & " - " & Feld2 & " - " & F..... & " - " & Feld13
In diesem Feld eine Parameterabfrage machen: Wie [Welche Zahlen suchen Sie?]
Beim Start wird man nach der Zahl gefragt: dann kamm man z.B.: *30* eingeben.
Hallo,
wenn du das etwas komfortabler haben willst ;D:
1. Erstelle ein Formular mit den Feldern
2. Jedes Feld das abgesucht werden soll, gibst du bei Marke ein "X" ein
3. Button "Suchen" im Formular
4. Ungebundenes Feld "Suchfeld" im Formular erstellen
5. Code beim Ereignis Klicken des Buttons:
Private Sub Suchen_Click()
Dim ctl As Control, Kriterium As String, strSQL As String
Kriterium = ""
For Each ctl In Me.Controls
If LCase(ctl.Tag) = "x" Then
Kriterium = Kriterium & ctl.Name & "=" & Me!Suchfeld & " OR "
End If
Next
If IsNull(Me!Suchfeld) Then
strSQL = "Select * from DeineTabelle"
Else
strSQL = "SELECT * from DeineTabelle WHERE " & Mid(Kriterium, 1, ((Len(Kriterium) - 3)))
End If
Forms!DeinFormular.RecordSource = strSQL
End Sub
Probiers aus, es wird gehen ;)
Gruß Oma
Hallo,
wenn ich mich dann auch noch einmischen darf. ;D
Ich würde hier die 13 Werte in eine eigene Tabelle auslagern mit einem Bezug zur jetzigen Tabelle. In der neuen Tabelle werden die Seitenzahlen jeweils in einem Datensatz gespeichert. 8 Werte > 8 Datensätze, 1 Wert > 1 Datensatz, 15 Werte > 15 Datensätze.
In einer Abfrage kann man dann einfach als Kriterium 30 eingeben, fertig.
Zitat von: MzKlMu am Mai 05, 2011, 19:40:21
Hallo,
wenn ich mich dann auch noch einmischen darf. ;D
Ich würde hier die 13 Werte in eine eigene Tabelle auslagern mit einem Bezug zur jetzigen Tabelle. In der neuen Tabelle werden die Seitenzahlen jeweils in einem Datensatz gespeichert. 8 Werte > 8 Datensätze, 1 Wert > 1 Datensatz, 15 Werte > 15 Datensätze.
In einer Abfrage kann man dann einfach als Kriterium 30 eingeben, fertig.
Sorry, aber das habe ich jetzt nicht verstanden :-(
Ich lade hier jetzt mal die Datenbank als zip-Datei hoch.
Formular "MillerIndex_1" - am unteren Rand sind die betreffenden 13 Felder nebeneinander angeordnet.
Neben der eingangs des Threads erwähnten Abfrage soll es außerdem möglich sein, beim Klicken auf eine beliebige Zahl in einem beliebigen Feld eine der eingetragenen Nummer entsprechende jpg-Datei aufzurufen. Beispiele:
Zahl "24" im 3. Feld -> Klick -> nr24.jpg wird aufgerufen
Zahl "251" im 10. Feld -> Klick -> nr251.jpg wird aufgerufen
Geht sowas?
[Anhang gelöscht durch Administrator]
Hallo,
schau mal im Formular unten; dort ist ein Suchfeld mit Button zur Realisierung deiner Anforderung.
Gruß Oma
[Anhang gelöscht durch Administrator]
Hallo,
ohne dass ich jetzt mit Oma konkurieren möchte, wollte ich dann doch noch meinen Vorschlag loswerden. Nachdem ich mich so aus dem Fenster gelehnt habe und das Datenmodell als falsch bezeichnet habe. ;D
Ich habe eine zusätzliche Tabelle angelegt wie vorgeschlagen und über ein Ufo im Formular eingebaut. Es können beliebig viele Seitenzahlen erfasst werden.
Sobald man in eine Seitenzahlenfeld klickt, wird im Ufo unten die entsprechende Anzahl angezeigt (in Rot). Ein Doppelklick in das Feld mit der Seitenzahl (009 z.B.) würde das entsprechende Jpg anzeigen. Der Code in diesem Ereignis muss angepasst werden.
Die Seitenzahlen habe ich wie gehabt als Datentyp Text mal gelassen.
Weiterhin hätte ich noch anzumerken, dass das Datenmodell noch zu überarbeiten wäre.
1.
AgentsPages1 - 10 ebenfals als extra Tabelle, analog zu der jetzigen Änderung
2.
Die Ja/Nein Felder sind zu entfernen und statt derer eine Tabelle in der die Feldnamen der Ja/Nein Felder Datensätze sind.
3.
Mit einer weiteren Tabelle (Zuordnungstabelle) mit der Tabelle "MillerIndex" als n:m Beziehung anzulegen.
Anbei die geänderte DB. Die neue Tabelle enthält die korrekten Seitenzahlen aus Deiner DB, habe ich mit Anfügeabfragen übertragen.
[Anhang gelöscht durch Administrator]
Zitat von: oma am Mai 07, 2011, 00:24:24
Hallo,
schau mal im Formular unten; dort ist ein Suchfeld mit Button zur Realisierung deiner Anforderung.
Gruß Oma
Das ist schon mal ok :-)
Allerdings... wie komme ich aus dieser Suche/Filtrierung wieder raus, in die "normale Formularansicht" mit allen Datensätzen? (das Symbol "Filter anwenden"/Menüleiste z.B. hat hier ja keine Funktion)
Zitat von: MzKlMu am Mai 07, 2011, 02:42:43
Hallo,
ohne dass ich jetzt mit Oma konkurieren möchte, wollte ich dann doch noch meinen Vorschlag loswerden. Nachdem ich mich so aus dem Fenster gelehnt habe und das Datenmodell als falsch bezeichnet habe. ;D
Ich habe eine zusätzliche Tabelle angelegt wie vorgeschlagen und über ein Ufo im Formular eingebaut. Es können beliebig viele Seitenzahlen erfasst werden.
Sobald man in eine Seitenzahlenfeld klickt, wird im Ufo unten die entsprechende Anzahl angezeigt (in Rot). Ein Doppelklick in das Feld mit der Seitenzahl (009 z.B.) würde das entsprechende Jpg anzeigen. Der Code in diesem Ereignis muss angepasst werden.
Die Seitenzahlen habe ich wie gehabt als Datentyp Text mal gelassen.
Weiterhin hätte ich noch anzumerken, dass das Datenmodell noch zu überarbeiten wäre.
1.
AgentsPages1 - 10 ebenfals als extra Tabelle, analog zu der jetzigen Änderung
2.
Die Ja/Nein Felder sind zu entfernen und statt derer eine Tabelle in der die Feldnamen der Ja/Nein Felder Datensätze sind.
3.
Mit einer weiteren Tabelle (Zuordnungstabelle) mit der Tabelle "MillerIndex" als n:m Beziehung anzulegen.
Anbei die geänderte DB. Die neue Tabelle enthält die korrekten Seitenzahlen aus Deiner DB, habe ich mit Anfügeabfragen übertragen.
Vielen Dank für Deine Mühe !
Ich werde aber erst heute abend dazu kommen, mir alles mal genau anzuschauen / zu testen.
Hallo,
ZitatAllerdings... wie komme ich aus dieser Suche/Filtrierung wieder raus, in die "normale Formularansicht" mit allen Datensätzen?
@v8wheels: indem du im Suchfeld nichts eingibst u. den Button betätigst!
Zitatohne dass ich jetzt mit Oma konkurieren möchte, wollte ich dann doch noch meinen Vorschlag loswerden.
@Klaus: es ist doch immer gut, wenn es mehrere Lösungsvarianten gibt u. v8wheels sich dann damit auseinandersetzen kann, was denn für sein Problem das beste ist.
@v8wheels: du solltest den Hinweis zum Datenmodell sorgfältig überprüfen (ich habe das bei meinem Code-Vorschlag nicht gemacht)!!!
Gruß Oma
Okay, mit dem Unterformular ist zwar das Aufrufen von jpg-Dateien möglich...... aber mit dem veränderten Design des Formulars kann ich mich überhaupt nicht anfreunden.....
@oma
Daß die führenden Nullen wegfallen, mißfällt mir.
Sorry, ich will hier weißgott nicht den Meckerer spielen, denn ich bin Euch SEHR dankbar für Eure Bemühungen... aber ich erlaube es mir trotzdem, den Mund aufzumachen, wenn mir etwas nicht gefällt - nicht böse sein ;)
Hallo,
Zitataber mit dem veränderten Design des Formulars kann ich mich überhaupt nicht anfreunden.....
Das Design eines Formulars ist bedeutungslos und ob jetzt die Felder horizontal oder vertikal angeordnet sind, spielt das so eine Rolle? Das Datenmodell ist das wichtigste. Versuche mal mit Deiner Version die Menge der Seiten (die Zahl in dem roten Feld) mit der gleichen kleinen Formel zu bestimmen wie in meinem Beispiel. Außerdem würde ich Dir dringend raten auch die anderen Ratschläge zum Datenmodell anzunehmen. So wie es jetzt ist, wirst Du nicht viel Freude haben.
Hallo,
ZitatDaß die führenden Nullen wegfallen, mißfällt mir.
ok. dann hier die Version mit führenden Nullen (Die Felder dann wieder Text)
Gruß Oma
[Anhang gelöscht durch Administrator]
Hmm.... bei mir wird in den Textfeldern weiterhin z.B. 9 statt 009 / 20 statt 020 ... angezeigt
Hallo,
naja, ich habe aber doch gesagt, dass die Felder nun wieder Text sind (und der Code nun für Text gilt)
Nehme den Code für eine alte Variante mit Text für pages1 bis 13 in Tabelle MillerIndex, in der noch 09... steht.
Gruß Oma
Zitat von: oma am Mai 08, 2011, 13:10:40
Nehme den Code für eine alte Variante mit Text für pages1 bis 13 in Tabelle MillerIndex, in der noch 09... steht.
Das habe ich gemacht, aber ich erhalte eine Fehlermeldung. In Deinem Code ist diese Zeile gelb markiert:
strSQL = "SELECT * from MillerIndex WHERE " & Mid(Kriterium, 1, ((Len(Kriterium) - 3)))
Ich habe den Fehler beheben können: In den Eigenschaften der 13 Textfelder war kein "x" unter Andere->Marke gesetzt.
Jetzt funktioniert die Suchfunktion.
Zitat von: MzKlMu am Mai 07, 2011, 23:30:49
Das Design eines Formulars ist bedeutungslos und ob jetzt die Felder horizontal oder vertikal angeordnet sind, spielt das so eine Rolle?
Sorry, aber für mich ist es nicht bedeutungslos.
Im Gegensatz dazu mögen meine Ansprüche, was das Datenmodell angeht, bescheidener sein. So, wie die Datenbank angelegt ist, ist sie für mich völlig ausreichend - und für eine grundlegende Überarbeitung, wie angeraten, fehlt mir die Zeit - und zugegebenermaßen, auch der Nerv.
Trotzdem - vielen Dank für die Unterstützung !