/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
"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


Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407867
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste