collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 80
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14057
  • stats Beiträge insgesamt: 67479
  • stats Themen insgesamt: 9094
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Textfeld für HTML-Farbcode soll dann daneben in anderem Feld die Farbe anzeigen  (Gelesen 2004 mal)

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 568
    • Quartettportal
Hallo,
wie bekommt man es hin, dass wenn man in einem Textfeld einen HTML-Farbcode hinterlegt hat (z.B. #FFF200) sich diese Farbe dann in einem Feld daneben anzeigen zu lassen? In HTML ginge das relativ schnell und einfach zu integrieren. Wer kann mir dazu einen Tip geben?

Gruß Andreas
Grüße und Dank im voraus
Andreas
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Hallo,
nimm ein passendes Steuerelement und setze die Farbe.
Beispiel:
Nimm ein Rechteck. Setze den Hintergrund auf normal (Standard ist transparent) und nutze folgenden Code:Me.recColor.BackColor = &HFFF200
Private Sub txtFarbe_AfterUpdate()
    Me.recColor.BackColor = Val("&H" & Mid(me.txtFarbe, 2))
End Sub
« Letzte Änderung: Dezember 17, 2017, 18:01:59 von steffen0815 »
Gruß Steffen
 
Folgende Mitglieder bedankten sich: derilzemer

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 568
    • Quartettportal
Hi.
danke erst mal für die schnelle Antwort.
nimm ein passendes Steuerelement und setze die Farbe.........
Setze den Hintergrund auf normal (Standard ist transparent) und nutze folgenden Code:Me.recColor.BackColor = &HFFF200
Private Sub txtFarbe_AfterUpdate()
    Me.recColor.BackColor = Val("&H" & Mid(txtFarbe, 2))
End Sub
Ich habe da schon ein kleines Prob mit. Ich habe ein Textfeld erstellt, Hintergrund normal. Dort habe ich den 1. Codeteil als Ereignis vor Aktualisierung setzen wollen, den 2. Teil wollte ich dann nach Aktualisierung machen.
Private Sub txtKRsfHTML_AfterUpdate()
    Me.recColor.BackColor = Val("&H" & Mid(txtKRsfHTML, 2))
End Sub
Private Sub txtKRsfHTML_BeforeUpdate(Cancel As Integer)
    recColor.BackColor = &HFFF200
End Sub
Aber me. funzt nicht, weil er sich an recColor stört, meckert, dass die Variable nicht definiert sei :(. Was mache ich falsch?

Gruß Andreas

Grüße und Dank im voraus
Andreas
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Hallo,
der erste Code war ein allgemeines Beispiel, der 2. auf dein  Problem zugeschnitten.
Du brauchst also nur den 2. Code.
Private Sub txtKRsfHTML_AfterUpdate()
    Me.recColor.BackColor = Val("&H" & Mid(me.txtKRsfHTML, 2))
End Sub

Btw:
Du hast aber schon ein Rechteck in deinem Formular erstellt!!!

Zitat
Aber me. funzt nicht, weil er sich an recColor stört
Das liegt dann wohl daran, dess dein Rechteck nicht "recColor" benannt ist.
« Letzte Änderung: Dezember 17, 2017, 18:05:10 von steffen0815 »
Gruß Steffen
 

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 568
    • Quartettportal
Hi,
Du brauchst also nur den 2. Code.
Private Sub txtKRsfHTML_AfterUpdate()
    Me.recColor.BackColor = Val("&H" & Mid(me.txtKRsfHTML, 2))
End Sub
Danke für den Hinweis, aber auch da bringt er noch den Fehler. Er markiert .recColor blau und bringt
Fehler beim kompilieren. Methode oder Datenobjekt nicht gefunden.

Gruß Andreas
Grüße und Dank im voraus
Andreas
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Hallo,
du hast aber schon ein Rechteck(-steuerelement) mit diesem Namen in deinem Formular erstellt!!!
Gruß Steffen
 
Folgende Mitglieder bedankten sich: derilzemer

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 568
    • Quartettportal
Hi,
sorry, da hab ich mal wieder gepennt. Funktioniert, danke.
Gruß Andreas
Grüße und Dank im voraus
Andreas
 

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 568
    • Quartettportal
Hallo Steffen,
eben ist mir aufgefallen, dass der VBA-Code einen Teil der Hexacodes ganz anders interpretiert als erwartet. Ich habe natürlich unterschiedliche Codes, welche ich mit Gimp "auslese". Z.B. zeigt mir Gimp für ein Blauton die HTML Notation 10a4d2 an (siehe bild1). Wenn ich das nun im Textfeld eingebe, dann macht er irgendein Ocker daraus (bild2). Hat er ein Problem damit, dass hier kein Buchstabe wie bei fff200 als Anfang dabei ist?

Gruß Andreas
Grüße und Dank im voraus
Andreas
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Hallo,
ok, da hab ich es mir zu einfach gemacht  ;)

Nun dann erstelle eine Funktion:Public Function fncHexColor2RGB(HexColor As String) As String
Dim cHtml As String
Dim Red As integer,Green As integer,Blue As integer
    cHtml = Replace(HexColor, "#", "")
    Red = Val("&H" & Mid(cHtml, 1, 2))
    Green = Val("&H" & Mid(cHtml, 3, 2))
    Blue = Val("&H" & Mid(cHtml, 5, 2))
fncHexColor2RGB = RGB(Red, Green, Blue)
End Function
Private Sub txtKRsfHTML_AfterUpdate()
    Me.recColor.BackColor = fncHexColor2RGB(me.txtKRsfHTML)
End Sub
« Letzte Änderung: Dezember 17, 2017, 19:45:35 von steffen0815 »
Gruß Steffen
 
Folgende Mitglieder bedankten sich: derilzemer

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 568
    • Quartettportal
Hi,
Nun dann erstelle eine Funktion:Public Function fncHexColor2RGB(HexColor As String) As String
Dim cHtml As String
Dim Red As integer,Green As integer,Blue As integer
    cHtml = Replace(HexColor, "#", "")
    Red = Val("&H" & Mid(cHtml, 1, 2))
    Green = Val("&H" & Mid(cHtml, 3, 2))
    Blue = Val("&H" & Mid(cHtml, 5, 2))
fncHexColor2RGB = RGB(Red, Green, Blue)
End Function
Private Sub txtKRsfHTML_AfterUpdate()
    Me.recColor.BackColor = fncHexColor2RGB(me.txtKRsfHTML)
End Sub

Das funktioniert jetzt, vielen Dank. Da ich ja rund 2600 Datensätze habe, wo ich das nutze, habe ich jetzt noch das Problem, dass wenn ich die Farbe eingebe, das Rechteck die Farbe in allen Datensätzen setzt und ändert. Ergo muss sich es binden. Macht man das auch über ein weiteres Zusatzfeld (Textfeld) in der Tabelle oder löst man das anders?

Gruß Andreas
 
Grüße und Dank im voraus
Andreas
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Hallo,
ich weiß nicht ob ich dich richtig verstehe.
Du hast ein Endlosformular und willst in jedem DS eine andere Farbe angezeigt bekommen!?
Dafür hätte ich keine Idee.
Gruß Steffen
 

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 568
    • Quartettportal
Hallo,
das ist ein Endlosformular, wo ich das jetzt integriert habe. Da kann dann auch in jedem Datensatz der HTML-FarbCode sich ändern. Das kommt eben auf die Rückseite der Karte an. Die Farbe des Rechteck müsste ich also pro Datensatz "speichern".
Hmmm, da gibt es keinen Lösungsansatz dafür? Ärgerlich.

Gruß Andreas
Grüße und Dank im voraus
Andreas
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Hallo,
was funktionieren würde ist das Farbfeld nur beim aktuellen Datensatz anzuzeigen:

Nutze ein ungebundenes Textfeld "txtAnzColor" statt dem Rechteck. Der nachfolgende Code setzt voraus, dass es in der Tabelle eine eindeutige ID namens "id" gibt: Private Sub Form_Current()
    Me.txtAnzColor = Me.id
    SetzeBed
End Sub

Sub SetzeBed()
    Me.txtAnzColor.FormatConditions.Delete
    Me.txtAnzColor.FormatConditions.Add acExpression, , "id = txtAnzColor"
    Me.txtAnzColor.FormatConditions(0).BackColor = fncHexColor2RGB(Nz(Me.txtKRsfHTML, "#FFFFFF"))
    Me.txtAnzColor.FormatConditions(0).ForeColor = fncHexColor2RGB(Nz(Me.txtKRsfHTML, "#FFFFFF"))
End Sub

Private Sub txtKRsfHTML_AfterUpdate()
    SetzeBed
End Sub
Gruß Steffen
 
Folgende Mitglieder bedankten sich: derilzemer

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1329
Du kannst das Paint-Ereignis des Detailbereichs verwenden und den Hintergrund einfärben (Alternative Farbe im Entwurf auf keine stellen). Flächen, die ungefärbt bleiben sollen, kannst Du mit einem Steuerelement im Hintergrund hinterlegen.Private Sub Detail_Paint()
   'num enthält den Farbwert
   Me.Detail.BackColor = Nz(Me.num, vbWhite)
End Sub
Grüße von der (⌒▽⌒)
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
@Lachtaube:
sehr gute Idee  :)
Gruß Steffen