Supportnet / Forum / Datenbanken
Suchen in Formularen anpassen
Frage
Hallo an alle!
Ich habe fogendes Problem: Ich soll eine Datenbank anlegen mit Ersatzteilen, ( die Datensätze kommen von den verschiedenen Herstellern )wo man schnell nach der Teilenummer oder seltener nach Bezeichnung Datensätze raussuchen kann.
Von einem Import in unser kaufm. Programm haben wir abgesehen, da es sich um über 200K Datensätzen handelt, von denen wir nur einen winzigen Bruchteil dann wirklich brauchen, was das System unnötig bremsen würde. Ich dachte mir das nun so:
Ideal wäre eine Vorselektion nach einem bestimmten Hersteller als Kriterium oder Tabellennahme (im Formular) mit Feldliste oder so, danach Eingabe von Zahlen oder Textfragmenten mit *x*.
Dann sollten in einer Liste alle in Frage kommenden Sätze erscheinen- Durch klicken auf den richtigen soll dieser wiederum in Einzelfeldern erscheinen.( Bei der Übernahme aus Tabellen passieren zu viele Fehler wegen Zeilensprüngen )
Wenn sich pro Hersteller eine Tabelle machen ließe, die sich dann alle von derselben Feldliste aus aufrufen ließen, wäre das prima wegen der späteren aktualisierung.
Wenn sich dieser Datensatz per Mausklick jetzt noch in eine andere Tabelle übernehmen ließe ( Bestellliste ö.ä.) wäre das ganz Toll, muss aber nicht sein !!
Die Access Suche ist dazu zu umständlich- zu viel geklicke und Meldungen.
Ich hab mit div. Tools und Codeschnipseln alles einzeln irgendwie hingekriegt, aber nie alles zusammen.- Eh ich ganz verzweifle:geht das überhaupt, wenn man wie ich ein bischen von Access, aber nix von VB versteht ?? Ich bin bisher immer prima mit Excel ausgekommen, aber das sprengt den Rahmen
Daten: Access 2000,OS XP, Einsatz der DB später auf NT. Können bei Servereinsatz mehrere Benutzer
gleichzeitig lesezugreifen ?
Eine Laiengerechte Antwort würde mir sehr weiterhelfen- Code kopieren kann ich gut- anpassen schon weniger ;-) !! Danke im Voraus - Andreas
Antwort 1 von Teddy7
Hallo Andreas !
Was Du da haben willst ist ohne weiteres realisierbar.
Wenn´s aber nur halbwegs professionell aussehen soll sind VBA-Kenntnisse unabdingbar.
Und was nutzt es Dir, wenn Du hier im Forum mit Codeschnipsel gefüttert wirst, Du aber voll auf dem Schlauch stehst, wenn was zu ändern ist.
Z.B. ist es für die Antwortzeit besser wenn die Daten aller Hersteller in einer Tabelle stehen.
Zum Update kann man auf Knopfdruck die Daten eines Herstellers rauslöschen und durch die neuen Daten ersetzen - wobei man die Exceldateien, die man von den Herstellern bekommt automatisch öffnen und einlesen kann (man kann dabei sogar Preisänderungen feststellen und anlisten).
Ich hab sowas mal programmiert.
Wenn man wirklich was damit anfangen will, dann ist das so anspruchsvoll, daß ich Dir bzw. Deiner Firma nur empfehlen kann damit einen Profi zu beauftragen !!
Gruß
Teddy
Was Du da haben willst ist ohne weiteres realisierbar.
Wenn´s aber nur halbwegs professionell aussehen soll sind VBA-Kenntnisse unabdingbar.
Und was nutzt es Dir, wenn Du hier im Forum mit Codeschnipsel gefüttert wirst, Du aber voll auf dem Schlauch stehst, wenn was zu ändern ist.
Z.B. ist es für die Antwortzeit besser wenn die Daten aller Hersteller in einer Tabelle stehen.
Zum Update kann man auf Knopfdruck die Daten eines Herstellers rauslöschen und durch die neuen Daten ersetzen - wobei man die Exceldateien, die man von den Herstellern bekommt automatisch öffnen und einlesen kann (man kann dabei sogar Preisänderungen feststellen und anlisten).
Ich hab sowas mal programmiert.
Wenn man wirklich was damit anfangen will, dann ist das so anspruchsvoll, daß ich Dir bzw. Deiner Firma nur empfehlen kann damit einen Profi zu beauftragen !!
Gruß
Teddy
Antwort 2 von allessoschwer
Hallo,
Danke für die schnelle Antwort, leider wird in unserer Branche nicht soo doll verdient, und das Teil brauchen wir auch nicht allzu oft.
Was ich oben geschrieben habe, wäre nur der Idealfall, reichen würde mir auch schon eine Liste der Artikel, die der Suchanfrage entsprechen, von der aus ich einen Einzelartikel anklicken kann, den Rest kriege ich sicher selbst hin.
Ich will halt nur umgehen, daß auf eine mehrdeutige Anfrage z.B. 123**67 nur ein einziger Datensatz erscheint.
Gruß Andraes
Danke für die schnelle Antwort, leider wird in unserer Branche nicht soo doll verdient, und das Teil brauchen wir auch nicht allzu oft.
Was ich oben geschrieben habe, wäre nur der Idealfall, reichen würde mir auch schon eine Liste der Artikel, die der Suchanfrage entsprechen, von der aus ich einen Einzelartikel anklicken kann, den Rest kriege ich sicher selbst hin.
Ich will halt nur umgehen, daß auf eine mehrdeutige Anfrage z.B. 123**67 nur ein einziger Datensatz erscheint.
Gruß Andraes
Antwort 3 von Teddy7
Hallo Andreas !
Warum denken alle Leute ein Access-Profi wäre teuer ??
Ist Dir mit einer Beispieldatenbank geholfen ?
Der gleichzeitige Zugriff von bis zu ca. 10 Usern ist mit akzeptablen Zugriffszeiten möglich.
Gruß
Teddy
Warum denken alle Leute ein Access-Profi wäre teuer ??
Ist Dir mit einer Beispieldatenbank geholfen ?
Der gleichzeitige Zugriff von bis zu ca. 10 Usern ist mit akzeptablen Zugriffszeiten möglich.
Gruß
Teddy
Antwort 4 von El Bobbele
Hallo allessoschwer!
Deine Aufgabenstellung ist sogar relativ einfach und mit einem Minimum an Aufwand zu lösen. Voraussetzung ist allerdings, dass du nicht pro Hersteller eine Tabelle usw. anlegst. Sowas ist tabu, ansonsten müsstest du die Tabellendefinitionen ändern, wenn sich bei den Herstellern etwas ändert!
Die Daten sollten sich mit einer normalen 1:n-Beziehung abbilden lassen können:
Benötigt wird eine Haupt-/Unterformularlösung. Es werden hier nur Eigenschaften aufgeführt, die geändert werden müssen. Der Rest kann bei den Standardeinstellungen bleiben.
Das Unterformular muss in das Hauptformular eingefügt werden, allerdings ohne Verknüpfungseinstellungen. Die Beziehung der Formular wird über die Steuerelemente selbst geregelt. Im Unterformular können dann noch Schaltflächen hinterlegt werden, die dann alles kopieren und machen, was du willst. Durchsucht werden bei einer Sucheingabe sowohl die Spalte [Teilenummer] als auch [Bezeichnung].
Für ein Anfügen von Daten ist das Formular nicht geeignet, weil das Hauptformular ungebunden ist. Dafür sollten z.B. andere Formulare herhalten.
Gruss
El Bobbele
Deine Aufgabenstellung ist sogar relativ einfach und mit einem Minimum an Aufwand zu lösen. Voraussetzung ist allerdings, dass du nicht pro Hersteller eine Tabelle usw. anlegst. Sowas ist tabu, ansonsten müsstest du die Tabellendefinitionen ändern, wenn sich bei den Herstellern etwas ändert!
Die Daten sollten sich mit einer normalen 1:n-Beziehung abbilden lassen können:
tblHersteller
----------------------------
HERST_ID Autowert
HERST_Name Text
tblErsatzteile
----------------------------
TEIL_ID Autowert
TEIL_HERST_ID Long Integer
TEIL_Name Text
Beziehung:
tblHersteller.HERST_ID -> tblErsatzteile.TEIL_HERST_ID
Benötigt wird eine Haupt-/Unterformularlösung. Es werden hier nur Eigenschaften aufgeführt, die geändert werden müssen. Der Rest kann bei den Standardeinstellungen bleiben.
Hauptformular
-----------------------------------------
Name: frmHersteller
Kombinationsfeld
-----------------------------------------
Name: cboHersteller
Datenherkunft: tblHersteller
Spaltenanzahl: 2
Spaltenbreite: 0cm;3cm
Nach Aktualisierung: [Ereignisprozedur]
Textfeld
-----------------------------------------
Name: txtSuche
Nach Aktualisierung: [Ereignisprozedur]
Code von frmHersteller
-----------------------------------------
Private Sub cboHersteller_AfterUpdate()
With Me
.txtSuche = Null
.fsubHersteller_Artikel.Requery
End With
End Sub
Private Sub txtSuche_AfterUpdate()
Me.fsubHersteller_Artikel.Requery
End Sub
Unterformular
------------------------------------------
Name: fsubHersteller_Ersatzteile
Datenherkunft: qryErstatzteile
Standardansicht: Endlosformular
Anfügen zulassen: Nein
Abfrage
-------------------------------------------
Name: qryErsatzteile
SQL:
SELECT tblErsatzteile.TEIL_ID,
tblErsatzteile.TEIL_Teilenummer,
tblErsatzteile.TEIL_Bezeichnung,
FROM tblErsatzteile
WHERE (((tblErsatzteile.TEIL_Teilenummer)
Like "*" & [Forms]![frmHersteller]![txtSuche]
& "*") AND ((tblErsatzteile.TEIL_HERST_ID)=
[Forms]![frmHersteller]![cboHersteller])) OR
(((tblErsatzteile.TEIL_Bezeichnung) Like "*" &
[Forms]![frmHersteller]![txtSuche] & "*") AND
((tblErsatzteile.TEIL_HERST_ID)=
[Forms]![frmHersteller]![cboHersteller]));
Das Unterformular muss in das Hauptformular eingefügt werden, allerdings ohne Verknüpfungseinstellungen. Die Beziehung der Formular wird über die Steuerelemente selbst geregelt. Im Unterformular können dann noch Schaltflächen hinterlegt werden, die dann alles kopieren und machen, was du willst. Durchsucht werden bei einer Sucheingabe sowohl die Spalte [Teilenummer] als auch [Bezeichnung].
Für ein Anfügen von Daten ist das Formular nicht geeignet, weil das Hauptformular ungebunden ist. Dafür sollten z.B. andere Formulare herhalten.
Gruss
El Bobbele

