Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Datenbank mit Warenübersicht

SCHNICO / 11 Antworten / Baumansicht Nickles

hallo,


zur vorgeschcihte:
eine bekannte von mir hat eine super tolle Geschäftsidee bei der ich ihr mit einer "kleinen" Datenbank helfen sollte. Kurz gesagt Sie möchte einen An und Verkauf aufmachen. Naja gut is auch egal. Nun zu meinem Problem.
Die Kunden-Datenbank habe ich auch schon zusammen gefriemelt. Mit Suche und allem Schnickschnack.
Auf einen Klick in der Tabelle der Kunden ,welche auch gesucht werden können, soll für den jeweiligen Kunden eine art "eigene Datenbank" geöffnet werden welche aus 2 Tabellen bestehen soll. Die eine Tabelle soll die angenommen Waren anzeigen (welche mann natürlich erst eintragen muss) und die andere Tabelle die Waren die von diesem Kunden schon verkauft worden sind.
Nun habe ich ein problem mit der realisierung denn ich kann ja nicht für jeden Kunden erst ne neue *.db anlegen um die Waren einzutragen.
Und genau an dieser Stelle brauche ich euch.
Welche möglichkeiten gibt es noch ausser jeweils für en Kunden eine neue Datenbank anzulegen? 


Vielen Dank im Voraus

bei Antwort benachrichtigen
SuperDAU01 SCHNICO „Datenbank mit Warenübersicht“
Optionen

Hi,
ich würde Microsoft Access benutzen. Du kannst eine Datenbank für einen Kunden verwenden und ein Abfrage-Formular einrichten, dann zeigt die Datenbank immer das, was du suchst, oder du machst mehrere Datenbanken und bastelst dir einen Filter und setzt Abfrageparameter. Am einfachsten in dem Fall mit SQL.

bei Antwort benachrichtigen
Slartibartfas SuperDAU01 „Hi, ich würde Microsoft Access benutzen. Du kannst eine Datenbank für einen...“
Optionen

Microsoft Access würde ich nur unter Zwang oder gegen aussergewöhnlich gute Bezahlung benutzen. Ich rate zur Verwendung einer Datenbank ;-)

Das Leben ist zu kurz für schlechtes Werkzeug
bei Antwort benachrichtigen
Borlander SCHNICO „Datenbank mit Warenübersicht“
Optionen
Welche möglichkeiten gibt es noch ausser jeweils für en Kunden eine neue Datenbank anzulegen?
Einfach bei jedem Datensatz die KundenID (= AutoInc-Feld in der Kunden DB) mitspeichern...

CU Borlander
bei Antwort benachrichtigen
SCHNICO Borlander „ Einfach bei jedem Datensatz die KundenID AutoInc-Feld in der Kunden DB...“
Optionen

darüber hab ich das ja versucht doch bisher kamen ja nur die fehlschläge bei raus. und selbst wenn ich die db's aus der hilfe nutze und diese in ein anderes verzeichnis kopiere macht er schon probleme draus.

bei Antwort benachrichtigen
SCHNICO Nachtrag zu: „Datenbank mit Warenübersicht“
Optionen

Danke für die Antworten.

Mir ist da ja noch ne andere Idee gekommen. Könnte man eventuell eine zweite DAtenbank/ oder Tabelle(für die Artikel des Kunden) mit in einem Datensatz speichern?
Wenn ja könnte mir dabei jemand helfen?

Danke schon mal im voraus.

bei Antwort benachrichtigen
Andreas42 SCHNICO „Danke für die Antworten. Mir ist da ja noch ne andere Idee gekommen. Könnte...“
Optionen

Hi!

Ich glaube, es fehlen ein paar Grundlagen. ;-)

Also im Profibereich/Industrie werden für solche Sachen ralationale Datenbanken eingesetzt. Welche das ist (Oracle oder was anderes) ist hier erstmal egal.

Relatinal bedeutet hier verknüpft und zwar über einen eindeutigen Index.

Begriffdefinitionen (grob definiert):

Feld:
Das ist die nkleinste Speichereinheit.

Datensatz:
Ein datensatz besteht aus mehreren Feldern. Mindestens ein Feld ist dabei ein Index.

Tabelle:
Eine Tabelle betseht aus einem oder mehreren Datensätzen (Datensätze einer Art). Die einzelnen Datensätze werden über das Indexfeld eindeutig identifiziert. Mit zusätzlichen Indizes kann man die Sortierung beeinflussen.
Beispiel:
Kundendaten
- Eindeutiger Index ist die Kundennummer
- Weitere Felder enthalten den Namen und die Adresse
- Ein zusätzlicher Index kann dann nach Namen sortieren

Datenbank:
Eine Datenbank besteht aus mehreren Tabellen. (Das ist übergeordnete Zusammenfassung um verschiede Tabellen zu einer Datenumgebung zusammenzufassen.)

Datenbank-System/Tool:
Das ist das Programm, dass eine oder mehrere Datenbanken verwaltet. Oracle stellt z.B. solche Datenbank-Systeme her.

OK, zu deiner Aufgabenstellung:

Eigentlich würde man das in der Art erschlagen:

1. Tabelle Geschäftspartnerdaten
- Index Geschäftpartnernummer
- Adressdaten
- usw.

2. Tabelle Artikel
- Index Artikelnummer
- Beschreibung
- usw.

Ab jetzt gibt's verschiedene Varianten, in normalen Unternehmen wird man Einkäufe und Verkäufe in getrennten Tabellen verwalten.
Ich mach hier ein einfaches Beispiel, dass pro Einkauf und pro Verkauf genau einen Artiekl einem Kunden zuordnet.

3. Tabelle Einkauf
- Index Einkaufauftrag-Nummer
- Geschaftpartnernummer
- Artikelnummer
- Datum des Einkauf
- Status bezahlt/nichtbezahlt
- usw.

4. Tabelle Verkauf
- Index Verkaufauftrag-Nummer
- Geschaftpartnernummer
- Artikelnummer
- Datum des Verkauf
- Status bezahlt/nichtbezahlt
- usw.

Wie gesagt, dass ist nur ein grober Vorschlag, der zeigen soll, wie man solche Datenverwaltungsaufgaben löst.
Bei relationalen Datnebanken werden immer "Grund/Stammdaten-Tabellen" (hier die Geschäftspartner und Artikeltabellen) verwendet, die dann über Zwischentabellen verknüpft werden (hier EK- und VK-Aufträge).

Wenn du die Trennung von EK/VK nicht willst, könnte man das auch in einer Tabelle abbilden und z.B. ein Feld einfügen, dass angibt, ob der Artikel bereits vferkauft wurde oder nicht.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
SCHNICO Andreas42 „Hi! Ich glaube, es fehlen ein paar Grundlagen. - Also im Profibereich/Industrie...“
Optionen

Das geht schon langsam in meine Richtung.
Hab mich gestern noch mal vorn Compi gesetzt und nochmal ein bissle gesucht und mit dem Feld MasterSource rumhandtiert. Da ich damit net wirklich zurecht kam habe ich mir die Delphi Hilfe rangeholt und mal unter MasterSource nachgeschaut. Dabei ist eine Datenbank nach meinen wünschen zusammen gekommen. Jedoch schaffe ich es nicht dieses Beispiel in irgendeiner Art in mein Programm zu übernehmen. Ich wollte euch mal bitte in meinen Source mal reinzuschauen.
Schon mal danke im Voraus.
Ich hoffe ihr könnt mir helfen.

Hier der Source zum Download
www.bootswerft-stapel.de/source/meinprogramm.zip
mir is keinj besserer Name eingefallen. ;-)

bei Antwort benachrichtigen
Andreas42 SCHNICO „Das geht schon langsam in meine Richtung. Hab mich gestern noch mal vorn Compi...“
Optionen

Hi!

Grrr! Ein Download >800kByte und dann sind auch noch zwei EXE-Dateien mit je >800kByte im Archiv.

Den Anschiss musst du dir gefallen lassen.

Wenn das Programm nicht funktioniert, dann haben die EXE-Dateien rein gar nichts im Archiv verloren! Das ZIP wäre warscheinlich
Für welche Delphi-Version ist das? ich verwende Delphi4.

Ich muss zugeben, dass ich Datenbank-Verwendung in Delphi noch nicht verwendet habe. Ich hoffe Borlander liest mit und hat dann einen Hinweis.

Bitte packe vorher das Archiv um und stelle eine neue kleinere Version zum Download bereit. (Es ist auch nicht falsch anzugeben, wie gross der Doiwnload ist, und was genau man darin findet - bzw. der Name der Datei, die entscheidend ist.)

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Borlander Andreas42 „Hi! Grrr! Ein Download 800kByte und dann sind auch noch zwei EXE-Dateien mit je...“
Optionen
Ich hoffe Borlander liest mit und hat dann einen Hinweis.
Wie Du siehst lese ich noch mit :-)

Ich werde mir das die Tage mal anschauen - hab schon irgendwann mal mit DB-Verknüpfungen gearbeitet, was SCHNICO vor hat ist eigentlich recht einfach zu realisieren (vor allem mit Delphi)...

CU Borlander
bei Antwort benachrichtigen
SCHNICO Borlander „ Wie Du siehst lese ich noch mit :- Ich werde mir das die Tage mal anschauen -...“
Optionen

Danke Borlander,

ich kann mir vorstellen das das doch recht einfach ist. Zu mal es ja in der Beispieldatei von Delphi auch funtioniert wie ich mir das denke jedoch funzt das einfach net über meine eigenen Tabellen. Das mit den Archiven hab ich umgestellt. ist jetzt nur noch knappe 28 kb groß. Geschrieben hab ich die DB in Delphi6 Enterprise. Hab aber leider nur die englische version so das ich nicht unbedingt alles in der Hilfe verstehe.

Und nochmal Danke für die Hilfe

bei Antwort benachrichtigen
Borlander SCHNICO „Das geht schon langsam in meine Richtung. Hab mich gestern noch mal vorn Compi...“
Optionen

Hat das Feld über das verknüft werden soll in beiden Tabellen den selben Namen?


Und dann hab ich noch einige Programmiertechnische Anregungen:

Für die Suche würde sich eine Function/Procedure anbieten - hier wird mehrmals das gleiche gemacht.
Alternativ könnte man auch RadioGroup1.Ietms[RadioGroup1.ItemIndex] als Feldname verwenden - das halte ich für die eleganteste und flexibelste Lösung.

Object sollten sinnvolle Namen bekommen und die Ereignisse würde ich bei dieser Projectgröße über eine ActionList (AFAIK ab Delphi 5) verwalten. Die Datenbankanteile könnte man zur besseren Übersicht noch in ein DataModule (AFAIK ab Delphi 5) auslagern - dort kann man die Verknüpfung dann auch graphisch darstellen...


CU Borlander

bei Antwort benachrichtigen