|  | 		    
					
        
         
          
         
	
          | |  | "Konverter" string til Object Fra : Torben Lund
 | 
 Dato :  29-05-07 13:19
 | 
 |  | Hej,
 
 Jeg sidder med MS Access 2002, og vil lave noget kode, der med
 baggrund i at navnet på en control er gemt på en database-tabel,
 checker indholdet af nogle controls på en form og sætter
 baggrundsfarven til orange-rød, hvis denne control er tom. Imidlertid
 kan jeg kun få dette til at virke ved explicit at skrive controllens
 navn. Imidlertid, vil jeg gerne kunne gemme controllens navn på
 database-tabellen og lave noget kort kode, som kaldes med en
 parameter. Følgende kode virker, men jeg skal gentage den for hver
 control, jeg bruger (ialt 25 controls):
 ----------------------------------------------------------------------
 ------
 Private Sub UpdateActivityColorFields(ReqFieldfromDB As String)
 Dim MissingColor As Long
 Dim OKColor As Long
 MissingColor = 4227327
 OKColor = 16777215
 
 If ReqFieldfromDB = "Task_Description" Then
 If IsNull(Me.Task_Description) Then
 Me.Task_Description.BackColor = MissingColor
 Else
 If Me.Task_Description = "" Then
 Me.Task_Description.BackColor = MissingColor
 Else
 Me.Task_Description.BackColor = OKColor
 End If
 End If
 End If
 End Sub
 ----------------------------------------------------------------------
 ------
 istedet vil jeg gerne skrive noget kode a la følgende:
 ----------------------------------------------------------------------
 ------
 Private Sub UpdateActivityColorFields(ReqFieldfromDB As String)
 Dim MissingColor As Long
 Dim OKColor As Long
 MissingColor = 4227327
 OKColor = 16777215
 
 ** Dim/Set CtrlObject to ReqFieldfromDB **
 
 If IsNull(CtrlObject) Then
 CtrlObject.BackColor = MissingColor
 Else
 If CtrlObject = "" Then
 CtrlObject.BackColor = MissingColor
 Else
 CtrlObject.BackColor = OKColor
 End If
 End If
 End Sub
 ----------------------------------------------------------------------
 ------
 
 Kan dette lade sig gøre?
 
 Mvh
 Torben
 
 
 
 
 |  |  | 
  preben nielsen (30-05-2007) 
 
	
          | |  | Kommentar Fra : preben nielsen
 | 
 Dato :  30-05-07 07:33
 | 
 |  | Du skal da bare overføre dit objekt som parameter... Din
 ReqFieldfromDB er da vej ikke en string som du skriver, vel ?
 
 
 "Torben Lund (slet HH65S)" <torben.lund@HH65Smail.tele.dk> skrev i
 en meddelelse
 news:11804414890.107554543923442@dtext.news.tele.dk...
 > Hej,
 >
 > Jeg sidder med MS Access 2002, og vil lave noget kode, der med
 > baggrund i at navnet på en control er gemt på en database-tabel,
 > checker indholdet af nogle controls på en form og sætter
 > baggrundsfarven til orange-rød, hvis denne control er tom.
 > Imidlertid
 > kan jeg kun få dette til at virke ved explicit at skrive
 > controllens
 > navn. Imidlertid, vil jeg gerne kunne gemme controllens navn på
 > database-tabellen og lave noget kort kode, som kaldes med en
 > parameter. Følgende kode virker, men jeg skal gentage den for
 > hver
 > control, jeg bruger (ialt 25 controls):
 > ----------------------------------------------------------------------
 > ------
 > Private Sub UpdateActivityColorFields(ReqFieldfromDB As String)
 >    Dim MissingColor As Long
 >    Dim OKColor As Long
 >    MissingColor = 4227327
 >    OKColor = 16777215
 >
 >    If ReqFieldfromDB = "Task_Description" Then
 >        If IsNull(Me.Task_Description) Then
 >            Me.Task_Description.BackColor = MissingColor
 >        Else
 >            If Me.Task_Description = "" Then
 >                Me.Task_Description.BackColor = MissingColor
 >            Else
 >                Me.Task_Description.BackColor = OKColor
 >            End If
 >        End If
 >    End If
 > End Sub
 > ----------------------------------------------------------------------
 > ------
 > istedet vil jeg gerne skrive noget kode a la følgende:
 > ----------------------------------------------------------------------
 > ------
 > Private Sub UpdateActivityColorFields(ReqFieldfromDB As String)
 >    Dim MissingColor As Long
 >    Dim OKColor As Long
 >    MissingColor = 4227327
 >    OKColor = 16777215
 >
 >    ** Dim/Set CtrlObject to ReqFieldfromDB **
 >
 >    If IsNull(CtrlObject) Then
 >        CtrlObject.BackColor = MissingColor
 >    Else
 >        If CtrlObject = "" Then
 >            CtrlObject.BackColor = MissingColor
 >        Else
 >            CtrlObject.BackColor = OKColor
 >        End If
 >    End If
 > End Sub
 > ----------------------------------------------------------------------
 > ------
 >
 > Kan dette lade sig gøre?
 >
 > Mvh
 > Torben
 >
 >
 
 
 
 
 |  |  | 
  Torben Lund (30-05-2007) 
 
	
          | |  | Kommentar Fra : Torben Lund
 | 
 Dato :  30-05-07 09:44
 | 
 |  | Jo, ReqFieldFromDB er netop en string, så jeg kan gemme den på
 en Access database-tabel. Dermed kan jeg lave et helt regelsæt
 på en tabel, og kan nøjes med at afvikle de samme 10-15 linier
 generisk kode for hver linie i tabellen.
 
 Som det er nu, skal jeg skrive alle controllernes navne i koden
 og dermed også opdatere koden, når jeg tilføjer en control.
 
 preben nielsen <prel@post.tele.dk> skrev:
 >Du skal da bare overføre dit objekt
 >som parameter... Din
 >ReqFieldfromDB er da vej ikke en
 >string som du skriver, vel ?
 >
 >
 >"Torben Lund (slet HH65S)"
 ><torben.lund@HH65Smail.tele.dk> skrev i
 >en meddelelse
 >news:11804414890.107554543923442@dt
 >ext.news.tele.dk...
 >> Hej,
 >>
 >> Jeg sidder med MS Access 2002, og
 >>vil lave noget kode, der med
 >> baggrund i at navnet på en
 >>control er gemt på en
 >>database-tabel,
 >> checker indholdet af nogle
 >>controls på en form og sætter
 >> baggrundsfarven til orange-rød,
 >>hvis denne control er tom.
 >> Imidlertid
 >> kan jeg kun få dette til at virke
 >>ved explicit at skrive
 >> controllens
 >> navn. Imidlertid, vil jeg gerne
 >>kunne gemme controllens navn på
 >> database-tabellen og lave noget
 >>kort kode, som kaldes med en
 >> parameter. Følgende kode virker,
 >>men jeg skal gentage den for
 >> hver
 >> control, jeg bruger (ialt 25 controls):
 >> ---------------------------------
 >>---------------------------------- ---
 >> ------
 >> Private Sub
 >>UpdateActivityColorFields(ReqField
 >>fromDB As String)
 >>    Dim MissingColor As Long
 >>    Dim OKColor As Long
 >>    MissingColor = 4227327
 >>    OKColor = 16777215
 >>
 >>    If ReqFieldfromDB =
 >>"Task_Description" Then
 >>        If
 >>IsNull(Me.Task_Description) Then
 >>
 >>Me.Task_Description.BackColor =
 >>MissingColor
 >>        Else
 >>            If Me.Task_Description = "" Then
 >>
 >>Me.Task_Description.BackColor =
 >>MissingColor
 >>            Else
 >>
 >>Me.Task_Description.BackColor = OKColor
 >>            End If
 >>        End If
 >>    End If
 >> End Sub
 >> ---------------------------------
 >>---------------------------------- ---
 >> ------
 >> istedet vil jeg gerne skrive
 >>noget kode a la følgende:
 >> ---------------------------------
 >>---------------------------------- ---
 >> ------
 >> Private Sub
 >>UpdateActivityColorFields(ReqField
 >>fromDB As String)
 >>    Dim MissingColor As Long
 >>    Dim OKColor As Long
 >>    MissingColor = 4227327
 >>    OKColor = 16777215
 >>
 >>    ** Dim/Set CtrlObject to
 >>ReqFieldfromDB **
 >>
 >>    If IsNull(CtrlObject) Then
 >>        CtrlObject.BackColor =
 >>MissingColor
 >>    Else
 >>        If CtrlObject = "" Then
 >>            CtrlObject.BackColor =
 >>MissingColor
 >>        Else
 >>            CtrlObject.BackColor = OKColor
 >>        End If
 >>    End If
 >> End Sub
 >> ---------------------------------
 >>---------------------------------- ---
 >> ------
 >>
 >> Kan dette lade sig gøre?
 >>
 >> Mvh
 >> Torben
 >>
 >>
 
 
 
 |  |  | 
  Ukendt (30-05-2007) 
 
	
          | |  | Kommentar Fra : Ukendt
 | 
 Dato :  30-05-07 22:13
 | 
 |  | > ----------------------------------------------------------------------
 > ------
 > istedet vil jeg gerne skrive noget kode a la følgende:
 > ----------------------------------------------------------------------
 > ------
 > Private Sub UpdateActivityColorFields(ReqFieldfromDB As String)
 >     Dim MissingColor As Long
 >     Dim OKColor As Long
 >     MissingColor = 4227327
 >     OKColor = 16777215
 >
 >     ** Dim/Set CtrlObject to ReqFieldfromDB **
 >
 >     If IsNull(CtrlObject) Then
 >         CtrlObject.BackColor = MissingColor
 >     Else
 >         If CtrlObject = "" Then
 >             CtrlObject.BackColor = MissingColor
 >         Else
 >             CtrlObject.BackColor = OKColor
 >         End If
 >     End If
 > End Sub
 > ----------------------------------------------------------------------
 > ------
 >
 > Kan dette lade sig gøre?
 >
 
 Nu har jeg ikke lige en access foran mig, men hvad med
 me.controls(regFieldfromDB)
 
 /søren
 
 
 
 |  |  | 
  Torben Lund (01-06-2007) 
 
	
          | |  | Kommentar Fra : Torben Lund
 | 
 Dato :  01-06-07 09:38
 | 
 |  | Hej Søren,
 
 Tak! - me.controls(regFieldfromDB) virker efter hensigten!
 
 Mange hilsner
 Torben
 
 Søren Larsen <slaat5750prikdk> skrev:
 >> ---------------------------------
 >>---------------------------------- ---
 >> ------
 >> istedet vil jeg gerne skrive
 >>noget kode a la følgende:
 >> ---------------------------------
 >>---------------------------------- ---
 >> ------
 >> Private Sub
 >>UpdateActivityColorFields(ReqField
 >>fromDB As String)
 >>     Dim MissingColor As Long
 >>     Dim OKColor As Long
 >>     MissingColor = 4227327
 >>     OKColor = 16777215
 >>
 >>     ** Dim/Set CtrlObject to
 >>ReqFieldfromDB **
 >>
 >>     If IsNull(CtrlObject) Then
 >>         CtrlObject.BackColor =
 >>MissingColor
 >>     Else
 >>         If CtrlObject = "" Then
 >>             CtrlObject.BackColor
 >>= MissingColor
 >>         Else
 >>             CtrlObject.BackColor = OKColor
 >>         End If
 >>     End If
 >> End Sub
 >> ---------------------------------
 >>---------------------------------- ---
 >> ------
 >>
 >> Kan dette lade sig gøre?
 >>
 >
 >Nu har jeg ikke lige en access
 >foran mig, men hvad med
 >me.controls(regFieldfromDB)
 >
 >/søren
 
 
 
 |  |  | 
 |  |