![]() |
Access - wie krieg ich sowas hin?
ich soll in der arbeit ein klientenprogramm mittels access erstellen, was ja an und für sich kein problem darstellen sollte
jetzt wüsste ich aber gern wie ich es hinbekomme dass nachdem öffnen der datenbank sofort eine eingabemaske erscheint - ohne dem fenster in dem tabellen, berichte usw. drinnen stehn ich hab mal einen screenshot des alten klientenprogramms angehängt - so schauts aus wenn man die datenbank öffnet außerdem wärs noch interessant zu wissen ob es eine möglichkeit gibtdie vorhandene datenbank zu bearbeiten, da ich ja nicht auf tabellen usw. zugreifen kann (zumindest auf den "ersten blick") ich hoff ihr wisst rat, dankeschön |
Sieh dir das Modul Start in der Beispieldatenbank mal an
|
verdammt, ich hab mir fast gedacht dass da programmierkenntnisse von nöten sein werden :(
|
jo.. a bissal was musst in diesem fall auf jeden fall programmieren können...
und wenn i ma da deinen screenshot anschau dürften ja einige der grauen felder erst dann weiss werden wenn in nem andren feld was eingetragen wird... das gehört auch ausprogrammiert (hab ich selbst bei drei meiner programme so machen müssen) |
ja, so isses leider
aba ich werd schaun ob ich das vorhandene bearbeiten kann, dann hab ich weniger arbeit :D |
dh. du hast eh die möglichkeit das jetzige umzuändern?? würd ich dann auf jeden fall auch versuchen.. denn solche programme neu zu machen dauert sicher einige zeit!
|
ich hab in erfahrung gebracht dass ich shift während dem öffnen der datenbank drücken muss damit das fenster mit den tabellen, berichten usw. kommt
bis jetzt hab ichs nicht gewusst und keine möglichkeit gesehen die bestehende zu ändern |
is grundsätzlich richtig, dass du mit SHIFT und möglicherweise auch zusätzlich mit F11 da was machen kannst... dies lässt sich aber programmtechnisch auch deaktivieren.. also mal schaun obs wirklich funktioniert!
|
dann kann ich nur hoffen dass das mit shift hinhaut, werds morgen in der arbeit testen und berichten
ich hoff mir wird geholfen falls ich nicht weiter weiß *g* |
sollte es es mit shift/f11 nicht funktionieren, kann man es umgehen wenn es - wie du sagst - programmtechnisch gemacht wurde? und wenn ja, wie?
|
puh.. das wird dann wahrscheinlich nur der programmierer wissen...
ich habs bei meinen progs so gemacht, dass ich einen versteckten button eingebaut hab mit dem ich das programm "freischalten" kann... aber wie gsagt, des wird nur da programmierer selbst wissen |
puuuuh, glück ghabt - mit shift funktionierts :cool:
|
so, ich hock grad an dem programm und häng grad ein bissl beim aktivieren/deaktivieren von steuerelementen
ich hab an diesen post einen screenie mit ist/soll angehängt fürs bessere verständnis meines probs die textfelder sollen erst aktiv werden wenn die checkbox links davon aktiviert ist eigentlich funktionierts ja, aber nur wenn ich die checkbox zuerst anhackl und dann das hackal wieder weggieb - ich hätts aber gern dass das die felder schon beim öffnen des formulars inaktiv sind (wenn die checkboxen nicht angehacklt ist) hier mal der code im visual basic ("MO" ist die Checkbox MO, "ZeitMO" das Feld daneben): Code:
Private Sub MO_Click() danke schon mal |
soll
|
Das Formular in der Entwurfsansicht öffnen, das Eigenschaftsfenster aufmachen, das jeweilige Steuerelement markieren und die Eigenschaft enabled auf false setzen, ist standardmäßig immer true.
lg bully |
na da sag ich danke, hat gefunzt :)
aber 1x bräucht ich noch hilfe von euch, dann sollte das programm fertig sein pro datensatz gibt es 3 datums-angaben, die die daten von verordnungscheinen sind jeder verordnungsschein gilt 28 tage und das programm soll alle datensätze ausgeben deren verordnungsscheine in 5 tage ablaufen bespiel: verordnung1 3.1.05, verordnung2 5.2.05, verordnung3 4.3.05 die verordnung3 gilt bis zum 1.4.05 von der theorie her soll access den letzten eintrag hernehmen, dann werden 23 tage hinzugezählt (23 deshalb weil alle datensätze angezeigt werden sollen deren verordnungsscheine in <6 tagen ablaufen und die scheine nur 28 tage gültig sind) es soll immer nur der letzte eintrag hergenommen werden - wenn in verordnung3 nix steht dann sollen zu verordnung2 23 tage hinzugezählt werden, steht nur in verordnung1 was drinnen dann muss dieser eintrag genommen werden und sind alle 3 felder ausgefüllt dann muss verordnung3 genommen werden ich hoffe ich habe das ganze halbwegs verständlich formuliert und dass ihr mir noch einmal helfen könnt ich hab nämlich wirklich keine ahnung wie ich das realisieren könnte danke schon mal |
Ich geh einmal davon aus, dass du die drei Felder als Datumsfelder definiert hast, auch ein Feld Gültigkeitsdatum sollte als Datumsfeld existieren. Dann könnte eine Prozedur, die deinen Wünschen entspricht ganz einfach so aussehen:
Private Sub Zuweisen_Click() If Not IsNull(verordnung3) Then gueltig = verordnung3 + 23 Else If Not IsNull(verordnung2) Then gueltig = verordnung2 + 23 Else gueltig = verordnung1 + 23 End If End If End Sub Ich habe in dem Beispiel die Sache so gelöst, dass mittels Befehlsschaltfläche Zuweisen das Datum in das Feld gueltig übernommen wird. Wichtig ist die Definition als Datumsfeld. Access rechnet jedes Datum intern in einen Integer-Wert um, damit funktioniert die Zuweisung mittels Addition von 23. Die If-Struktur erklärt sich hoffentlich von selbst. lg bully |
ich meld mich erst jetzt wieder zu wort da ich die knappen letzten 2 wochen leider nicht zum bearbeiten des programms gekommen bin
zuerst nochmal ein dankeschön @bully, dein geposteter "code" hat gepasst - allerdings mit 23 statt 28 da jeder verordnungsschein 28 tage gilt und das datum des letzten tages der gültigkeit eingetragen werden soll (hab mich da bei meinem vorherigen post wohl schlecht ausgedrückt) jetzt fehlt noch die ausgabe: es sollen alle datensätze angezeigt werden die bis heute+5 gültig sind beispiel: heute ist der 17.4. - somit sollen alle datensätze ausgegeben werden deren gültigkeitsdatum der 17.4., 18.4., 19.4., 20.4., 21.4. oder 22.4. ist die ausgabe soll als formular erfolgen da sie als liste in einem register anzeigt werden soll ein beispiel für die ausgabe hab ich als screenshot angehängt (ist eine andere liste) ich kann mir vorstellen dass ich schon etwas nerve aber hoffe trotzdem dass ihr mir helfen könnt schon mal vielen dank |
Zitat:
Zitat:
Zu deinem nächsten Problem: Erstelle eine Abfrage und trage als Kriterium bei dem Datumsfeld >=Datum() UND <=Datum()+5 ein. Dann erstellst du das Formular auf Basis der Abfrage und das wars. Dazu ist nun wirklich keine Zeile VBA-Code nötig. lg bully |
bzgl. den 23 oder 28 tagen
vergiss es, hab einen blödsinn geschrieben, hat eh so gepasst ;) hab mir evtl. gedacht dass es auch mit vba geht weil ich nicht gewusst hab wie ich die abfrage in die registerseite einfüge habs jetzt aber geschafft zwar leider nicht so in formularform wie auf dem vorherigen screenshot sondern in tabellenform, aber hauptsache es is mal da wieder ein großes dankeschön aber ich befürchte das war leider nicht meine letzte frage :( |
na was hab ich gesagt, ich steh schon wieder an :(
aber wenigstens handelt sichs diesmal um die letzte "aufgabe" der änderung des programmes und zwar soll ein bestehender bericht geändert werden mein problem dabei ist dass zu der dafür benötigten tabelle neue spalten hinzugefügt wurden und ich jetzt nicht weiß wie ich diese in die "feldliste" eintragen kann die hilfe vom access hat mir zwar gesagt dass es eine symbolleiste für die feldliste geben soll (auf der es einen button "aktualisieren" gibt) aber ich hab nix gefunden ich hab mich auch schon mit dem ausdrucksgenerator gespielt ("=[tb_KL]![AngName]" - spalte "AngName" aus tabelle "tb_KL") - aber sobald ich dann den bericht öffnen will kommt ein kleines kastl in das ich einen parameterwert eingeben soll ich hoffe dass auch dieses "problem" gelöst werden kann dankeschön |
Auch dieses Problem kann relativ einfach gelöst werden (in Access 2002, aber es müsste in den anderen Versionen auch so gehen):
Also die Basistabelle des Berichts muss natürlich schon um das neue Feld erweitert sein. Öffne den Bericht in der Entwurfsansicht. Unter Ansicht->Symbolleisten musst du die Symbolleiste "Berichtsentwurf" aktiviert haben. Dort findest du das Symbol mit dem Namen "Feldliste" (links neben der auffälligen Toolbox mit dem Hammer). Wenn du dieses Symbol aktivierst, öffnet sich ein Fenster mit allen Feldern der Basistabelle, auch dem dazugefügten Feld. Das schnappst du und beförderst es per Drag-und-Drop im Bericht dorthin, wo du die Daten haben möchtest. Es wird normalerweise auch eine Spaltenüberschrift eingefügt, wenn du diese nicht willst-> vom Feld trennen (rechte Maustaste) und löschen. lg bully |
oh, hab mich anscheinend wieder schlecht ausgedrückt - naja, dann nochmal *g*
die feldliste hab ich gefunden und ich weiß auch wie ich daraus objekte in den bericht bekomme aber der tabelle auf der der bericht basiert wurden nachträglich einige spalten hinzugefügt und genau diese neuen spalten fehlen leider in der feldliste - mein problem ist jetzt dass ich nicht weiß wie ich diese fehlenden spalten in die feldliste hinzufügen kann ich hab mal ein pic gebastelt damit du siehst was ich meine (alle spalten der tabelle sollen auch in der feldliste stehen) |
Kommen die Daten für den Bericht aus einer Abfrage?
Falls ja, musst du erst diese abändern und die neuen Felder hinzufügen, dann kannst du sie im Bericht einfügen. Woher die Daten im Bericht kommen steht in den Eigenschaften unter "Datenherkunft" oder so ähnlich. mfg Thomas |
Na ja, alles klar, wenn die Feldliste das neue Feld nicht anzeigt, dann liegt eine Abfrage dazwischen. Also musst du die Abfrage wie T.dot schon geschrieben hat, um die neuen Felder erweitern.
Bericht->Entwurfsmodus->Eigenschaften->Datenherkunft, dort siehst du genau, wo die Daten herkommen (SELECT.....) lg bully |
Zitat:
aber wie ich sehe hab ich anscheinend talent um probleme ungenau zu beschreiben :rolleyes: es gibt im bericht noch keine felder der neuen spalten - dazu komm ich gar nicht da ich die eigentlich aus der feldliste holen wollte (was ja noch nicht geht) sprich: zuerst will ich die neuen spalten in die feldliste hinzufügen um sie dann in den bericht "einzubauen" |
Nein, gemeint war das du zuerst im Bericht nachschaust, welche Tabelle oder wie ich vermute eben Abfrage die Daten für den Bericht liefert. Dazu musst du eben zuerst im bestehenden Bericht nachschauen, welche Abfrage es ist. Das war mit
Zitat:
Es klingt verwirrend, aber es kann IMHO nur so sein, dass dein Bericht die Daten eben nicht aus der Tabelle, sondern sozusagen gefiltert aus der Abfrage bekommt. Denn sonst würden dir die neuen Tabellenfelder in der Feldliste automatisch angezeigt werden. Ich hoffe, dass damit die Missverständnisse geklärt sind. lg bully |
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag