maxx64
Goto Top

Script (exe) um mdb zu ändern

Hallo zusammen,
da ich hier immer wieder tolle Antworten gefunden habe, bin ich nun auch mal unter die Fragenden gegangen

Ich habe eine Access Datenbak welche durch ein Kassenprogramm "befüllt" wird.
Leider nicht überall so wie wir es brauchen. Deshalb hier die Frage:

Kann ich mit einem ausführbaren Script die mdb direkt "befüllen"?

In einer Tabelle stehen die EK Preise in einer Spalte, welche eben auch in einer anderen Spalte, multpliziert mit der Spalte MwSt, stehen sollen.
Das Programm kann das leider nicht erfüllen und über Excel ist es für die Endanwender zu umständlich.

Klar, kann ich in Access einen SQL Befehl dafür verwenden, aber die Enduser können das leider auch nicht.
Ich bräuchte also etwas nach dem Motto: drück diesen Knopf- fertig.

gibt es sowas ohne Große Programmier Kenntnisse?

btw wie würde der Sql befehl aussehen? ( die Spalten heißen : datenEK, datenMWST, datenVK2) :
update * from datenEK * datenMWST to datenVK2

Vielen Dank für eure Hilfe.

sonnige Grüße
Max

Content-Key: 164185

Url: https://administrator.de/contentid/164185

Printed on: April 26, 2024 at 19:04 o'clock

Member: Biber
Biber Apr 07, 2011 at 17:29:21 (UTC)
Goto Top
Moin Maxx64,

willkommen im Forum.
Spontan würde ich sagen, deine Frage ist falsch gestellt.

Was du beschreibst, ist eine Datenredundanz, die - wenn sie denn im Datenmodell aus welchen Gründen auch immer- geduldet werden soll, bitteschön auch da als Sonderlocke behandelt werden muss.
Sprich: Wenn ihr HEUTE eine Rechnung über 100.- PetroDollar schreibt und HEUTE ist der MwSt-Satz meinetwegen 20% und ihr schreibt HEUTE zusätzlich zum Nettopreis und dem heute gültigen MwStSatz auch noch das errechnete Feld BruttoPreis in dieselbe Tabelle...
--> Dann müsst ihr das nicht nachträglich von außen füllen, sonden zeitgleich bei der Erfassung der Nettowerte.

Oder aber ihr haltet es in mehreren Tabellen: eine mit nur Netto-Preisen und dem Datum und eine mit gültigen MwStSätzen Von-Bis
und "berechnet" den Bruttopreis nur beim Anzeigen/Drucken und speichert ihn nicht.

Grüße
Biber

P.S. Und ja: nachträglich Rechnungsdaten über eine *.exe manipulieren geht auch bei Access.
Ist aber äh-bäh-> tut man einfach nicht.
Mitglied: 60730
60730 Apr 07, 2011 at 19:50:47 (UTC)
Goto Top
moin und willkommen,

ich glaub ich hab da was falsch verstanden..

"Wem gehört der Fahrrad da draussen?"
"Ich !"

da hasste türlich auch wieder links....

@Biber kannst du bitte meinen Kommentar ins große runde eckige befördern - meine Paybackkarte ist ja schon voll face-wink

Gruß
Member: Biber
Biber Apr 07, 2011 at 20:10:52 (UTC)
Goto Top
Moin T-Mo,

eigentlich wollte ich mal ein, zwei Stündchen zurückhaltend moderieren und nicht ungefragt meine wahre Meinung durchschimmern lassen.
Aber eh du den TO auf irgendwelche schmalen Bretter lenkst, auf denen er eventuell in produktiven Systemen vor sich hinirrlichtert....

Noch mal "meine" Zusammenfassung.

  • es gibt eine Access-"Datenbank"
  • die befüllt/gepflegt wird durch eine Black-Box-Applikation namens "Kassenmodul"
  • die eigentlich nur die erfassten Rechnungsdaten vollständig im Sinne der Folgeprozesse speichern soll, aber nicht einmal das auf die Reihe bekommt
  • nun sollen an der geschlossenen Appz vorbei die Rechnungsdaten manipuliert werden
  • die SQL-Kenntnisse des TO reichen für den Vorschlag "update * from datenEK * datenMWST to datenVK2"


Dieses SQL entspricht in etwa dem oft in Grundschulen in sozialen Brennpunkten gehörten Dialog:

"Wem gehört der Fahrrad da draussen?"
"Ich !"

Und damit soll ihm ihn ein Autoexec-Makro zusammenbraten??

No way - und die andere Begründung siehe oben.

Grüße
Biber
Member: Maxx64
Maxx64 Apr 08, 2011 at 11:37:49 (UTC)
Goto Top
@Biber
Entschuldigt bitte wenn ich euer Niveau nicht erreiche und ihr euch deshalb außerstande seht mir zu helfen.
Eigentlich dachte ich, dass dazu ein Forum da wäre.

Es stimmt, dass meine Kenntnisse über SQL nicht die Besten sind, reichen aber dazu aus z.B. mit SQL Datenbanken zu arbeiten, Abfragen in Crystal Reports zu generieren, oder mich auch mit IBExpert durch unsere 2 GB Große SQL Datenbank zu manövrieren.
Nein, ich habe keine Informatik studiert. Trotzdem traue ich mir zu die IT in einem Unternehmen zu betreuen, dass 5 Mio Umsatz macht - und das seit 15 Jahren. und ja ich verdiene richtig Geld damit.

..."Grundschulen in sozialen Brennpunkten".... ist einfach eine Unverschämtheit, die in einem Forum nichts zu suchen hat, und deutet eigentlich nur auf die Überheblichkeit eines weltfremden adipösen Abiturienten, der außer dem PC vor sich keinen nennenswerten Freunde hat und wenn dann nur virtuell.


Soweit so gut.

Falsch verstanden hast du so ziemlich alles was in meinem ersten Post stand.
War das zu schwer für Dich?

Also nochmal: ich habe eine DB die ( wie auch immer) gefüllt wird. Dort steht in einer Spalte ein Preis (EK) welcher netto ist und jetzt will ich eine Automatik die mir diesen Preis in eine andere Spalte der Tabelle schreibt incl der gültigen Mwst ( welche in einer anderen Spalte steht) und dazu eben eine exe, damit meine Mitarbeiter keine Accesskenntnisse benötigen.

wer hat was von Rechnungen gesagt????

P.S. Und ja: nachträglich Rechnungsdaten über eine *.exe manipulieren geht auch bei Access.Ist aber äh-bäh-> tut man einfach nicht.<<<<

und was man nicht tut, solltest Du vielleicht erst mal in einem Benimmkurs erfahren: z.B. jemanden der eine Frage stellt, ( die du nicht kapieret hast) in ein Asoziales Milieu zu stellen.


Aber vielleicht gibt es hier ja jemanden, für den diese Frage einfach zu lösen ist - darüber würde ich mich freuen.

Maxx
Member: Biber
Biber Apr 08, 2011 at 12:52:03 (UTC)
Goto Top
Moin Maxx,

ja, vielleicht gibt es jemanden, für den deine Frage einfach zu lösen ist.

Bitte lies noch mal meinen ersten Kommentar (nicht den zweiten, der war an T-Mo gerichtet).

ich habe dich NICHT falsch verstanden.

Du schreibst:
Also nochmal: ich habe eine DB die ( wie auch immer) gefüllt wird. Dort steht in einer Spalte ein Preis (EK) welcher netto ist
und jetzt will ich eine Automatik die mir diesen Preis in eine andere Spalte der Tabelle schreibt incl der gültigen Mwst
( welche in einer anderen Spalte steht) und dazu eben eine exe, damit meine Mitarbeiter keine Accesskenntnisse benötigen.


Ich schrieb:
Sprich: Wenn ihr HEUTE eine Rechnung über 100.- PetroDollar schreibt und HEUTE ist der MwSt-Satz meinetwegen 20%
und ihr schreibt HEUTE zusätzlich zum Nettopreis und dem heute gültigen MwStSatz auch noch das errechnete Feld BruttoPreis
in dieselbe Tabelle...
--> Dann müsst ihr das nicht nachträglich von außen füllen, sonden zeitgleich bei der Erfassung der Nettowerte.

Warum schreibt denn nicht das "Kassenmodul" die redundanten Werte zeitgleich in dieselbe Tabelle?.
Sicherlich, weil die "Kassenmodul"-Entwickler euch auch gesagt haben "Hey, das ist unnötig. Das wäre eine redundante Information."

Ein errechnetes und immer wieder errechenbares Feld braucht doch nicht abgespeichert werden.

Grüße
Biber
Member: Maxx64
Maxx64 Apr 08, 2011 at 16:23:27 (UTC)
Goto Top
Hallo Biber,

schon klar.
ich könnte zum Hersteller gehen und ihn darum bitten. Da die aber kein Interesse daran haben muss ich es irgendwie anders lösen. Oder eine andere Software kaufen. Neue Software neue Lizensen, Schulung etc. alles viel zu aufwändig und zu teuer.
Deshalb die Frage.

Es spielt doch keine Rolle warum es so ist, sondern wie ich es löse - oder?
Warum an den Tatsachen herumfeilschen, wenn nichts zu feilschen gibt.

Das Kassenmodul kann es nicht leisten. Also will ich die Tabelle ändern.
Bei knapp 2500 Artikel pro jahr ist es händisch viel zu umständlich. Ich brauche für weitere Belege eben den EK incl. MwSt.

Es gibt die Spalte mit dem VK2 und dort könnte ich händisch den Bruttopreis eintragen, da er auf dem Papier von dem abgeschrieben wird aber nur netto da ist, müßte ich jedesmal den Taschenrechner zücken, oder ne Excelliste machen und die widerum einspielen. Alles viel zu umständlich. Du verstehst?

Ich möchte es für die Kassenbediener einfach machen. Die sollen schön den Preis eintragen den sie vom Papier ablesen und mein Script macht den Rest, nämlich den EK netto in einen EK brutto verwandeln.
Da es 7 + 19% Artikel gibt muss das MwSt Feld als Faktor dienen.

Tja, viel geschrieben, viel drumherum. Meinst Du es gibt ne einfache Lösung?

immer noch sonnige Grüße
Max
Member: Biber
Biber Apr 08, 2011 at 16:43:19 (UTC)
Goto Top
Moin Maxx64,

angenommen, ich blende mal kurz alle meine prozesstechnischen Bedenken aus und tue so, als müsste es sein wegen einer Wette oder so...

Dann bleiben dennoch zwei (ja, auch diesmal ernst und nicht sarkastisch gemeinte) Fragen:

a) Wenn diese Kauf-Software "Kassenmodul" diese MDB-Datei befüllt und pflegt - ist denn wenigstens diese Lösung in "Daten"-MDB (Backend) und Eingabe/pflege-Masken auf den Clients (FrontEnd) getrennt?
--> Wenn ja, wenn die Daten in einer reinen "Daten"-Datei liegen und Seiteneffekte kalkulierbar sind.....hmmja ....wäre es denkbar.

b) ist es denn unbedingt nötig, dass der Brutto-Preis PHYSISCH in der gleichen Tabelle steht wie der NettoPreis und der MWSt-Satz?
Wäre nicht eine Dazu-Berechnen in einer Tabellenkopie (plus berechnetem Feld) denkbar, so dass die Black-Box "Kassenmodul unverändert bleibt.
Denn was macht ihr, wenn die mal eine neue Version "Kassenmodul" draufspielen mit geänderter DB-Struktur oder verschlüsselten Daten oder wenn die euch einfach den Support canceln, weil ihr in den Originaltabellen rumwuselt.

Zerstreue einfach meine Bedenken..

P.S habt ihr denn überhaupt ein Access, um auf die Daten direkt zuzugreifen oder ist das eine Runtime und nur das Format ist *.MDB?

Grüße
Biber
Member: Maxx64
Maxx64 Apr 08, 2011 at 17:07:36 (UTC)
Goto Top
Hallo Biber,

uf, ich vertehs nicht.
du denkst einfach zu kompliziert.

Ich habe die Access Datei, ich hab das Passwort für die Datei. Es ist eine Einzelplatzversion. Ich habe leider keine Source Code für die Software. Update gibt es nur wenn ich es zulasse. Es gibt kein "die". Ich habe das Progi gekauft Lizensiert und verwende es. Ich will es nicht verkaufen oder sonstwas damit machen. Ich will keine Rechnungen ändern oder sonstwie be###en.

Ich brauche lediglich den Wert des Brutto EK in der Spalte VK2. Weil ich einen Report brauche welche für bestimmt Kunden den EK + MwSt anzeigt. Das Programm ist ein Endverbraucher Progi und somit kann ich keinen Ek als VK darstellen. Nur wenn ich im VK2 meinen Ek ( brutto) reinschreibe steht er zu Verfügung. Du verstehst?

Dem Programm ist List&Label angehängt, welches Programmspezifisch nur bedingt Zugriffe auf die erforderlichen Tabellen zuläßt.
So kann ich den Report nur mit den Zeilen der Tabelle füllen welche freigegeben sind. Das ist nunmal auch der VK2.
Einen neue Tabelle kann ich mit diesem Report nicht ansprechen.

Ich habe auch Access 2007 und kann ein bisschen damit umgehen. Anfügeabfragen erstellen, Tabellen verknüpfen u.s.w.
Also kurz gesagt ich kann es händisch machen. ich will aber, dass meine Verkäufer es nachdem sie was eingegeben haben auch können.
Knopfdruck - fertig.

Nochmal: eine exe die ein SQL Script laufen läßt die in meiner DB den Ek aus der Tabelle DatenEK nimmt die MwSt dazupackt und in Spalte VK2 einträgt.
Fertig.

Geht? Geht nicht?

Grüße
Max
Mitglied: 60730
60730 Apr 08, 2011 at 19:42:26 (UTC)
Goto Top
moin,
Zitat von @Maxx64:
Hallo Biber,

uf, ich vertehs nicht.
du denkst einfach zu kompliziert.

Ich denke eher, wir denken anders als du und deine unkomplizierte Herangehensweise harmoniert nicht auf Anhieb mit unserer einfach gestrickten Art.

Ich drösel mal deine eigenen Zeilen auf....

Klar, kann ich in Access einen SQL Befehl dafür verwenden, aber die Enduser können das leider auch nicht.
btw wie würde der Sql befehl aussehen? ( die Spalten heißen : datenEK, datenMWST, datenVK2) :

  • hier ist die Frage "kannst" du - oder "könntest" du?
  • Fall 1 - du kennst doch das notwendige - ok Accessspezifisch leicht danebenes SQL Statement?
  • Fall 2 - eben da weißt du mehr - als wir.

Ich bräuchte also etwas nach dem Motto: drück diesen Knopf- fertig.
gibt es sowas ohne Große Programmier Kenntnisse?

  • In Access jein - als exe nein

Dem Programm ist List&Label angehängt, welches Programmspezifisch nur bedingt Zugriffe auf die erforderlichen Tabellen zuläßt.
  • welches L&L oder die Db läßt die nur zu?
  • wie ist die Schnittstelle zwischen den beiden definiert?

  • Und wirklich der gut gemeinte Rat auch von mir -der sowas früher ganz gerne blauäugig gemacht hat (denk nur mal dran, wenn eine Änderung der Märchensteuer kommt - dann mußt du das EMDÄBehchen abdäten)

Geht? Geht nicht?
Ich habe leider keine Source Code für die Software.

  • Wie Biber schon vermutet hat - wenn es denn so ist - wie du schreibst - ist das eher nix....
  • Irgendeine .exe die irgendwo eine mdb drin hat und innerhalb der exe wird L&L angesprochen - das würde ich so nicht machen.....

Datensatz 1i in Netto "knopfklick" alles wird umgerechnet und ist Brutto - nächster Knopfklick und aus dem Brutto wird Brutto + Märchensteuer.

Grüße
Max

Gruß
Member: perseues
perseues Apr 09, 2011 at 08:21:09 (UTC)
Goto Top
Zitat von @Maxx64:

Ich habe die Access Datei, ich hab das Passwort für die Datei. Es ist eine Einzelplatzversion. Ich habe leider keine Source
Code für die Software. Update gibt es nur wenn ich es zulasse. Es gibt kein "die". Ich habe das Progi gekauft
Lizensiert und verwende es. Ich will es nicht verkaufen oder sonstwas damit machen. Ich will keine Rechnungen ändern oder
sonstwie be###en.

Hallo Max,

ich denke, es geht bei Änderungen der Tabelle nicht darum, dass Du gegen Lizenzen verstößt, sondern das der Hersteller nicht mehr in der Haftung ist. Angenommen, bei einer Betriebsprüfung kommt raus, dass die Abrechnungen fehlerhaft sind (bei 5 Mio. Jahresumsatz kann da was zusammenkommen), dann werdet Ihr sagen "dass hat die Kassensoftware der Firma XYZ so berechnet", also wendet ihr Euch an den Hersteller mit einem Haftungsschaden. Der wird dann der Sache nachgehen und feststellen, dass in "seiner" Tabelle plötzlich eine Spalte "Brutto" ist und eine Fremdsoftware darin Berechnungen durchführt. Dann wird er sagen "so nicht Spezifiziert und Freigegeben" und sich entspannt zurücklehnen.
Zu Deiner eigentlichen Frage, wenn Deine Berichtssoftware keine zweite Tabelle ansteuern kann (dahin würde ich die per VBA berechneten Werte auslagern), weiß ich keine vernünftige Lösung für Dein Problem.

Grüße perseues

[Edit]P.S: Das Ändern der Datentabelle kann durchaus auch Auswirkungen auf die Kassensoftware haben, wenn die Programmierer dort Sachen wie
Select * FROM
verwendet haben. Dann fällt das Programm nämlich auf die Nase, wenn da mehr wie erwartet kommt.
Member: Biber
Biber Apr 09, 2011 at 15:11:24 (UTC)
Goto Top
Moin perseues,

du hast aus meiner Sicht vollommen recht mit deinen Argumenten.
Zitat von @perseues:
[Edit]P.S: Das Ändern der Datentabelle kann durchaus auch Auswirkungen auf die Kassensoftware haben, wenn die Programmierer
dort Sachen wie
> Select * FROM
> 
verwendet haben. Dann fällt das Programm nämlich auf die Nase, wenn da mehr wie erwartet kommt.oin
Hier ist es ja noch schlimmer. Er will in das vorhandene, aber nicht genutzte Feld "VK2" einfach den VK-Brutto (VK*MwST) reinschreiben.

Wenn ein ungenutztes Feld Fax-Nummer für List&Labels verfügbar wäre, dann würde er das nehmen.

Nee, ich klink mich aus.
Ich würde entweder dem List&Labels ein zusätzliches (berechnetes) Feld bereitstellen als "originalTabelle.Vk*OriginalTabelle.MwSt" oder als Quelle einen View/eine Abfrage auf die Originaltabelle nehmen.

Jegliches andere Ansinnen ist mir zu abgedreht. Nachher lesen hier Jung-Adminen und Admins mit.
Die bekommen dann einen etwas schrägen Eindruck von unserer Arbeitsweise.

Grüße und viel Glück.
Biber
Member: perseues
perseues Apr 09, 2011 at 17:45:30 (UTC)
Goto Top
Zitat von @Biber:

Hier ist es ja noch schlimmer. Er will in das vorhandene, aber nicht genutzte Feld "VK2" einfach den
VK-Brutto (VK*MwST) reinschreiben.

Wenn ein ungenutztes Feld Fax-Nummer für List&Labels verfügbar wäre, dann würde er das nehmen.
Oh, dann habe ich das wohl falsch verstanden. Dachte er will die Tabelle erweitern.
Nee, ich klink mich aus.
Ich würde entweder dem List&Labels ein zusätzliches (berechnetes) Feld bereitstellen als
"originalTabelle.Vk*OriginalTabelle.MwSt" oder als Quelle einen View/eine Abfrage auf die Originaltabelle nehmen.

Jegliches andere Ansinnen ist mir zu abgedreht.
das ist auch das einzig machbare
Grüße und viel Glück.
Biber
dito,
perseues