Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Werte aus 13 Feldern abfragen

Begonnen von v8wheels, Mai 05, 2011, 14:05:37

⏪ vorheriges - nächstes ⏩

v8wheels

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)

edgar.basler

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.

oma

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
nichts ist fertig!

MzKlMu

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.
Gruß Klaus

v8wheels

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  :-(


v8wheels

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]

oma

Hallo,

schau mal im Formular unten; dort ist ein Suchfeld mit Button zur Realisierung deiner Anforderung.

Gruß Oma



[Anhang gelöscht durch Administrator]
nichts ist fertig!

MzKlMu

#7
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]
Gruß Klaus

v8wheels

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)

v8wheels

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.

oma

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
nichts ist fertig!

v8wheels

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  ;)

MzKlMu

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.
Gruß Klaus

oma

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]
nichts ist fertig!

v8wheels

Hmm.... bei mir wird in den Textfeldern weiterhin z.B. 9 statt 009 / 20 statt 020 ... angezeigt