Problem: Hintergrundfarbe von Formularfeld ändern

Coldfist

Mitglied
Hallo Leute!
Ich hab ein kleines Problem. Ich will die Hintergrundfarbe eines Formularfeldes ändern. (Für ein Spiel). Ich gebe auch die richtigen rgb-Werte an, aber Access macht mir da immer nur weiß oder türkis hin.

Ih schreib mal den code hier hin, aber ich meine er ist richtig.

'HP/MP-Warnung'

If fown_hp <= 60 And fown_hp > 30 Then
fown_hp.BackColor = RGB(255, 255, 0)
Else
If fown_hp <= 30 Then
fown_hp.BackColor = RGB(255, 0, 0)
Else
fown_hp.BackColor = RGB(255, 255, 255)
End If
End If


Danke Schonmal

Coldfist
 
Sorry

Hat sich schon erledigt.
Ich war so doof und hab in den Eigenschaften vom Formularfeld falsche Eigenschaften eingegeben.
Naja, nobody's perfect. :(

Ich hab da aber noch eine Frage.
Ich würde gerne eine Musikdatei in mein Formular einbinden, die in einer Endlosschleife läuft. Da es sich um ein Kampfspiel handelt und es sehr klein bleiben soll, habe ich mich für eine midi-Datei entschieden.

Ich bin ein ziemlicher Anfänger in VBA, aber ich habe schon Erfahrung in anderen Programmier-und WebSprachen.

Ich hoffe ihr könnt mir da ein wenig weiterhelfen.


Coldfist
 
hallo Coldfist,

Access versteht auch 'mciSendString'.

Ich sende dir mal ein Beispiel zu.

Setze einfach das VB-Beispiel in dein Access-Formular ein und die Klasse 'CDXVBMusic.cls' musst du in ein Klassenmodul als Text hineinkopieren (nicht importieren).

ANI :)
 

Anhänge

  • midi1.zip
    9,3 KB · Aufrufe: 69
Irgendwie ist mir das zu hoch.
Ich hab vorher noch nie mit Modulen gearbeitet und weiß auch nicht, wo ich dieses andere Skript in Access einfügen soll.

Ich hab bei Access aber die Option gefunden "Midi Sequenz einfügen".
Da stürzt mir Access aber immer ab. Ist das vielleicht sowas ähnliches?

Gruß
Coldfist
 
hallo Coldfist,

um ein Klassenmodul in Access einfügen zu können, musst du die VB-Klassen mit einem Text-Editor öffnen, den gesamten Text makieren und in den Zwischenspeicher laden.

Dann erstellst du in Access ein neues Klassenmodul.

Kartenreiter 'Module':
Menü 'Einfügen'-'Klassenmodul'

Es wird ein leeres Klassenmodul erstellt.

Oben steht dann:
Option Compare Database
Option Explicit

Mehr nicht.

Nun kopierst du die Zwischenablage in dieses leere Modul und speicherst dieses als 'CDXVBMusic' ab.

Öffne nun dein Formular und schreibe folgenden Code:

Dim music As New CDXVBMusic

'music' kannst du aber auch anders benennen.

Nun kannst du auf die Variable 'music' z.B. mit 'music.PlayMusic Filename' zugreifen.

Ich habe es selbst noch einmal getestet mit Access 97 und funktioniert.

ANI
 
Danke für deinen großartigen Einsatz, aber das funktioniert nicht.
Ich benutze Access XP mit VB 6. Vielleicht liegt es daran.

Wenn ich den Text in das Klassenmodul einfüge, dann erkennt er nicht alle Codezeilen. Wenn ich dann trotzdem Versuche, die Funktion auszuführen, beschwert sich Access.

Muss man das bei Access XP vielleicht anders machen?
 
mojen Coldfist,

leider musste ich auch schon feststellen, daß es gravierende Unterschiede zwischen Access 97-2000 und XP gibt.

Wass 2000 kennt, kennt XP wieder nicht. Desshalb programmiere ich immer noch mit 97 und bleibe dadurch nach oben hin kompatibel. Beim Test mit 2000 oder XP programmiere ich Umleitungen, damit es 2000 oder XP wieder versteht.

Was Access XP angeht werde ich daher passen müssen.

ANI :(
 
Zurück