# Problem: Hintergrundfarbe von Formularfeld ändern



## Coldfist (21. November 2003)

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


----------



## Coldfist (21. November 2003)

*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


----------



## ANI (22. November 2003)

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


----------



## Coldfist (24. November 2003)

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


----------



## ANI (24. November 2003)

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


----------



## Coldfist (24. November 2003)

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?


----------



## ANI (25. November 2003)

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


----------

