Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

VBA Prozeduren einsetzen aber wo ?

Begonnen von samurai, Juli 27, 2012, 09:24:28

⏪ vorheriges - nächstes ⏩

samurai

Zitat von: MzKlMu am Juli 27, 2012, 11:00:28
Hallo,
Du hast meine Frage nicht beantwortet:
ZitatWas steht denn in der Zeile "Beim Klicken" des Löschen Buttons?

Private Sub löschen_Click()

    If MsgBox("Soll der Datensatz wirklich gelöscht werden ?", vbYesNo) = vbYes Then
        DoCmd.RunCommand acCmdDeleteRecord
    End If
   
End Sub

ZitatAlso es ist eine Tabelle. Das andere kommt später, erst einmal möchte ich mit der kleinen Form beginnen
Das dürfte der falsche Weg sein. Erst sollten das Datenmodell mit allen Tabellen und Beziehungen vollständig erstellt sein, dann kann man erst mit den Formularen beginnen.
Zitateine Tabelle mit folgenden Spalten. Name, Vorname, Telefonnr., Dienstleiter, Tournr. .
Da ein Fahrer ja wahrscheinlich mehrere Touren haben kann, hat die Tournummer in der Fahrertabelle nichts zu suchen. Und auch beim Dienstlieter habe ich so meine Zweifel. Zumindest sollte es eine Tabelle geben mit allen Dienstleitern. In die Fahrertabelle kommt dann nur ein Fremdschlüssel zum Dienstleiter.

Du solltest Dich dringend mit den Grundlagen zur Erstellung einer relationalen Datenbank beschäftigen.

Das eine Datenbank aus mehreren Tabellen mit den dazugehörigen Beziehungen besteht ist mir ja auch bereits klar. Das sollte eigentlich auch nur ein Beispiel sein, um mein Problem zu lösen was das löschen eines Datensatzes betrifft.
Ich habe auf jedenfall schon mal gelernt das man keine Datesätze löschen soll. Das ist doch schon mal was.
Ich werde diese Datenbank jetzt noch einmal überarbeiten mit allen Tabellen und Beziehungen. Werde mich dann noch mal melden wenn ich am verzweifeln bin.
Der Tip mit dem Doppleklick war gut und funktioniert zumindest auf meiner BeispielDB.
Danke für Eure Hilfe.
Samurai, der jetzt erst mal einen Termin war nehmen muss.

oma

Hallo

@Harald: das du nun eine Lösung mit den uralten und nicht mehr zu empfehlenden Methode: - DoCmd.DoMenuItem -  vorstellst ist ja nicht so optimal  ;D.....

Gruß Oma
nichts ist fertig!

bahasu

Hallo Oma,

zutiefts zerknirscht muss ich zugeben, dass ich mit dem Assi von a2003 einen Button erstellt habe und nicht auf die alten Formulierungen geachtet habe. Asche auf mein Haupt. ;D

Da ich lieber mit dem alten a2003 als mit a2007 arbeite, kannst Du mich gern als Opa bezeichnen.  :D

Harald
Servus

oma

Hallo Opa,

naja, dann passen wir ja wenigstens zusammen..... ;)

Gruß Oma
nichts ist fertig!

69bruno

#19
 ;) Nur so nebenbei, abseits der Diskussionen der Gurus hier im Forum.....

Du hattest am Anfang gefragt, wo Du das reinschreiben sollst.......

VBA ist objektabhängig. Wenn Du in einem Formular auf ein Steuerelement, sprich deinen Löschbutton einen Doppelklick machst, kommst Du automatisch in die Eigenschaften des Objekts. Dort das gewünschte Ereignis aussuchen und dort die Prozedur oder ein Makro hinterlegen.
;)

Ich hoffe, das war dir schon klar geworden, neben der ganzen "wie mache ich es am schönsten" Diskussion. Wenn nicht, freue ich mich, wenn ich Dir helfen konnte.
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

MzKlMu

Hallo,
Zitatneben der ganzen "wie mache ich es am schönsten" Diskussion.
Da ging es nicht um Schönheit, da ging es um eine richtige Lösung im Sinne einer Datenbank.
Gruß Klaus

69bruno

#21
Da habe ich ja auch gar nichts gegen, habe genug Hilfe hier erhalten, aber bevor ich jemandem erkläre, wie er es machen soll, sollte ich doch auch die Frage beantworten, wo er es machen soll.  :-\

Oder ???

:)

Bitte jetzt nicht die Goldwaage auspacken. Ich wollte den Inhalt der Diskussion nicht bewerten.

Ok, also streiche "schönsten" setze "besten"
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

database

Hi,

ZitatVBA ist objektabhängig

8) "aber bevor ich jemandem erkläre, wie er es machen soll, sollte ich doch auch die Frage beantworten, wo er es machen soll.."

Erklärst du mir dann auch bitte mal die Sache mit der 'Objektabhängigkeit' - mir ist das bis heute nicht bekannt.

Entschuldige bitte - aber auch der auf die 'Objektabhängikeitserklärung' folgende Text ist ziemlich dürftig um jemanden zu erklären was er mit dem VBA-Code für ein Klick-Ereignis tun soll,
die Empfehlung ein Makro zu verwenden ... gewagt  :'(

69bruno

 ::) Die Erklärung der Objektabhängigkeit machen wir mal bei einem Kaffee oder einem Bier ausserhalb des Forums  ;D

Das mit dem Makro war keine Empfehlung.... ich habe nur versucht darzustellen, dass entweder der VBA-Code oder der Aufruf eines Makros bei dem dazugehörigen Objekt in den Eigenschaften unter den Ereignissen platziert werden kann.....

Ich bin kein Access Guru, ich verstehe die Frage des "wo schreibe ich den Code rein..." so, dass er den Weg zum Codefenster eines Objektes (Steuerelementes) nicht kennt.

Wenn ich ihn falsch verstanden habe, dann Asche auf mein Haupt und überhaupt.

Wenn ich ihn richtig vertsanden habe, soll er bitte mal auf ein Steuerelement doppelklicken und unter den Ereignissen einen Code oder Makro hinterlegen.

Natürlich kommt er in die Codeansicht auch anders, aber auf diesem Weg ist er direkt da, wo er schreiben will.  :-\
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

DF6GL

Hallo,

muss da auch mal einhaken..   :o

"soll er bitte mal auf ein Steuerelement doppelklicken und unter den Ereignissen einen Code oder Makro hinterlegen"


ist schlichtweg falsch/irreführend..


In der Eigenschaften-Zeile eines bestimmten (Objekt-) Ereignisses darf nur zum Einen der Name eines Makros, zum Zweiten der Aufruf einer Public-Funktion (=ftkMeineFunktion() ) oder zum Dritten der Text [Ereignisprozedur] zu stehen kommen..

Im Fall von "[Ereignisprozedur]" kann über die am rechten Rand der Eigenschaftenzeile stehenden 3 Pünktchen der VBA-Editor aufgerufen werden, wobei der Cursor dann automatisch in der dafür vorbereiteten Ereignisprozedur (Prozedurgerüst) steht.



Weitere Infos:

http://www.dbwiki.net/wiki/Access_Anf%C3%A4nger:_Wo_schreibe_ich_den_VBA-Code_hin%3F

69bruno

Erstaunlich, wie viele sich drum kümmern können, wenn man darauf hinweist.

Aber ist mir jetzt auch egal, ich werde hier nicht weiter diskutieren.
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

Beaker s.a.

Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

database

@Beaker
:D ::) 8)

Zitat...ich werde hier nicht weiter diskutieren
Eine entsprechende Erwartungshaltung war auch nicht erkennbar  ;D

oma

Hallo. hallo

nun lasst es aber mal gut sein !!

Gruß Oma
nichts ist fertig!

database