20. december 2005 - 19:10
Der er
18 kommentarer og 2 løsninger
Forkortelse af programmering
Hej Jeg har en Userform hvor jeg skal resette følgende textboxe: FrmHovedkort.TxtP1.Text = rs("P1").Value FrmHovedkort.TxtP2.Text = rs("P2").Value FrmHovedkort.TxtP3.Text = rs("P3").Value FrmHovedkort.TxtP4.Text = rs("P4").Value FrmHovedkort.TxtP5.Text = rs("P5").Value FrmHovedkort.TxtP6.Text = rs("P6").Value FrmHovedkort.TxtP7.Text = rs("P7").Value FrmHovedkort.TxtP8.Text = rs("P8").Value FrmHovedkort.TxtP9.Text = rs("P9").Value FrmHovedkort.TxtP10.Text = rs("P10").Value FrmHovedkort.TxtP11.Text = rs("P11").Value FrmHovedkort.TxtP12.Text = rs("P12").Value FrmHovedkort.TxtP13.Text = rs("P13").Value FrmHovedkort.TxtP14.Text = rs("P14").Value FrmHovedkort.TxtP15.Text = rs("P15").Value FrmHovedkort.TxtP16.Text = rs("P16").Value FrmHovedkort.TxtP17.Text = rs("P17").Value FrmHovedkort.TxtD0P1.Text = rs("D0P1").Value FrmHovedkort.TxtD0P2.Text = rs("D0P2").Value FrmHovedkort.TxtD0P3.Text = rs("D0P3").Value FrmHovedkort.TxtD0P4.Text = rs("D0P4").Value FrmHovedkort.TxtD0P5.Text = rs("D0P5").Value FrmHovedkort.TxtD0P6.Text = rs("D0P6").Value FrmHovedkort.TxtD0P7.Text = rs("D0P7").Value FrmHovedkort.TxtD0P8.Text = rs("D0P8").Value FrmHovedkort.TxtD0P9.Text = rs("D0P9").Value FrmHovedkort.TxtD0P10.Text = rs("D0P10").Value FrmHovedkort.TxtD0P11.Text = rs("D0P11").Value FrmHovedkort.TxtD0P12.Text = rs("D0P12").Value FrmHovedkort.TxtD0P13.Text = rs("D0P13").Value FrmHovedkort.TxtD0P14.Text = rs("D0P14").Value FrmHovedkort.TxtD0P15.Text = rs("D0P15").Value FrmHovedkort.TxtD0P16.Text = rs("D0P16").Value FrmHovedkort.TxtD0P17.Text = rs("D0P17").Value FrmHovedkort.TxtD1P1.Text = rs("D1P1").Value FrmHovedkort.TxtD1P2.Text = rs("D1P2").Value FrmHovedkort.TxtD1P3.Text = rs("D1P3").Value FrmHovedkort.TxtD1P4.Text = rs("D1P4").Value FrmHovedkort.TxtD1P5.Text = rs("D1P5").Value FrmHovedkort.TxtD1P6.Text = rs("D1P6").Value FrmHovedkort.TxtD1P7.Text = rs("D1P7").Value FrmHovedkort.TxtD1P8.Text = rs("D1P8").Value FrmHovedkort.TxtD1P9.Text = rs("D1P9").Value FrmHovedkort.TxtD1P10.Text = rs("D1P10").Value FrmHovedkort.TxtD1P11.Text = rs("D1P11").Value FrmHovedkort.TxtD1P12.Text = rs("D1P12").Value FrmHovedkort.TxtD1P13.Text = rs("D1P13").Value FrmHovedkort.TxtD1P14.Text = rs("D1P14").Value FrmHovedkort.TxtD1P15.Text = rs("D1P15").Value FrmHovedkort.TxtD1P16.Text = rs("D1P16").Value FrmHovedkort.TxtD1P17.Text = rs("D1P17").Value Ovenstående burde vel kunne forkortes med nogle (for X = 1 to etc) men jeg kan ikke få det til at makke ret. Er der en der kan? vh Steen
Annonceindlæg fra Pax8
20. december 2005 - 20:49
#1
Kan du ikke forsøge at lege videre med dette: Dim x As Integer Dim ctl As MSForms.Control For Each ctl In UserForm1.Controls If ctl.Tag = "tb" Then ctl.Text = x x = x + 1 End If Next ctl Sæt tag-værdien i dine tekstbokse til tb. Ellers vent for det ser ud til at Exp. ikke er helt oppe på dupperne lige pt. Får ihverfald ingen mails og kan ikke søge. Du kan senere prøve at søge på control-arrays, jeg mener spm. er blevet vendt flere gange før.
20. december 2005 - 22:48
#2
eller Private Sub CommandButton1_Click() Dim oTxt As Object Dim x As String For Each oTxt In Me.Controls If TypeName(oTxt) = "TextBox" Then x = Mid(oTxt.Name, 3, 99) oTxt.Value = rs(x).Value End If Next End Sub
20. december 2005 - 23:13
#3
sorry x = Mid(oTxt.Name, 4, 99)
21. december 2005 - 00:45
#4
jo men jeg ønsker ikke alle userformens textboxe slettet - kun de nævnte!
21. december 2005 - 01:30
#5
jajaja nu ik' så hurtig, Steen :-) Private Sub CommandButton1_Click() Dim oTxt As Object Dim x As String Dim MyArray Dim MyItem MyArray = Array("P", "D0P", "D1P") For Each oTxt In Me.Controls If TypeName(oTxt) = "TextBox" Then x = Mid(oTxt.Name, 4, 99) For Each MyItem In MyArray If (x Like MyItem & "[0-9]") Or x Like MyItem & "[1][1-7]" Then oTxt.Value = rs(x) End If Next End If Next End Sub
21. december 2005 - 01:33
#6
If (x Like MyItem & "[0-9]") Or (x Like MyItem & "[1][0-7]") Then
21. december 2005 - 08:37
#7
Hej bak Tak for dit bidrag. Programmeringen er jo som sædvanlig for de "langhårede" ;0) så har du mulighed for at ændre hele følgende variant? vh Steen FrmHovedkort.TxtP1.Text = rs("P1").Value FrmHovedkort.TxtP2.Text = rs("P2").Value FrmHovedkort.TxtP3.Text = rs("P3").Value FrmHovedkort.TxtP4.Text = rs("P4").Value FrmHovedkort.TxtP5.Text = rs("P5").Value FrmHovedkort.TxtP6.Text = rs("P6").Value FrmHovedkort.TxtP7.Text = rs("P7").Value FrmHovedkort.TxtP8.Text = rs("P8").Value FrmHovedkort.TxtP9.Text = rs("P9").Value FrmHovedkort.TxtP10.Text = rs("P10").Value FrmHovedkort.TxtP11.Text = rs("P11").Value FrmHovedkort.TxtP12.Text = rs("P12").Value FrmHovedkort.TxtP13.Text = rs("P13").Value FrmHovedkort.TxtP14.Text = rs("P14").Value FrmHovedkort.TxtP15.Text = rs("P15").Value FrmHovedkort.TxtP16.Text = rs("P16").Value FrmHovedkort.TxtP17.Text = rs("P17").Value FrmHovedkort.TxtD0P1.Text = rs("D0P1").Value FrmHovedkort.TxtD0P2.Text = rs("D0P2").Value FrmHovedkort.TxtD0P3.Text = rs("D0P3").Value FrmHovedkort.TxtD0P4.Text = rs("D0P4").Value FrmHovedkort.TxtD0P5.Text = rs("D0P5").Value FrmHovedkort.TxtD0P6.Text = rs("D0P6").Value FrmHovedkort.TxtD0P7.Text = rs("D0P7").Value FrmHovedkort.TxtD0P8.Text = rs("D0P8").Value FrmHovedkort.TxtD0P9.Text = rs("D0P9").Value FrmHovedkort.TxtD0P10.Text = rs("D0P10").Value FrmHovedkort.TxtD0P11.Text = rs("D0P11").Value FrmHovedkort.TxtD0P12.Text = rs("D0P12").Value FrmHovedkort.TxtD0P13.Text = rs("D0P13").Value FrmHovedkort.TxtD0P14.Text = rs("D0P14").Value FrmHovedkort.TxtD0P15.Text = rs("D0P15").Value FrmHovedkort.TxtD0P16.Text = rs("D0P16").Value FrmHovedkort.TxtD0P17.Text = rs("D0P17").Value FrmHovedkort.TxtD1P1.Text = rs("D1P1").Value FrmHovedkort.TxtD1P2.Text = rs("D1P2").Value FrmHovedkort.TxtD1P3.Text = rs("D1P3").Value FrmHovedkort.TxtD1P4.Text = rs("D1P4").Value FrmHovedkort.TxtD1P5.Text = rs("D1P5").Value FrmHovedkort.TxtD1P6.Text = rs("D1P6").Value FrmHovedkort.TxtD1P7.Text = rs("D1P7").Value FrmHovedkort.TxtD1P8.Text = rs("D1P8").Value FrmHovedkort.TxtD1P9.Text = rs("D1P9").Value FrmHovedkort.TxtD1P10.Text = rs("D1P10").Value FrmHovedkort.TxtD1P11.Text = rs("D1P11").Value FrmHovedkort.TxtD1P12.Text = rs("D1P12").Value FrmHovedkort.TxtD1P13.Text = rs("D1P13").Value FrmHovedkort.TxtD1P14.Text = rs("D1P14").Value FrmHovedkort.TxtD1P15.Text = rs("D1P15").Value FrmHovedkort.TxtD1P16.Text = rs("D1P16").Value FrmHovedkort.TxtD1P17.Text = rs("D1P17").Value FrmHovedkort.TxtD2P1.Text = rs("D2P1").Value FrmHovedkort.TxtD2P2.Text = rs("D2P2").Value FrmHovedkort.TxtD2P3.Text = rs("D2P3").Value FrmHovedkort.TxtD2P4.Text = rs("D2P4").Value FrmHovedkort.TxtD2P5.Text = rs("D2P5").Value FrmHovedkort.TxtD2P6.Text = rs("D2P6").Value FrmHovedkort.TxtD2P7.Text = rs("D2P7").Value FrmHovedkort.TxtD2P8.Text = rs("D2P8").Value FrmHovedkort.TxtD2P9.Text = rs("D2P9").Value FrmHovedkort.TxtD2P10.Text = rs("D2P10").Value FrmHovedkort.TxtD2P11.Text = rs("D2P11").Value FrmHovedkort.TxtD2P12.Text = rs("D2P12").Value FrmHovedkort.TxtD2P13.Text = rs("D2P13").Value FrmHovedkort.TxtD2P14.Text = rs("D2P14").Value FrmHovedkort.TxtD2P15.Text = rs("D2P15").Value FrmHovedkort.TxtD2P16.Text = rs("D2P16").Value FrmHovedkort.TxtD2P17.Text = rs("D2P17").Value FrmHovedkort.TxtD3P1.Text = rs("D3P1").Value FrmHovedkort.TxtD3P2.Text = rs("D3P2").Value FrmHovedkort.TxtD3P3.Text = rs("D3P3").Value FrmHovedkort.TxtD3P4.Text = rs("D3P4").Value FrmHovedkort.TxtD3P5.Text = rs("D3P5").Value FrmHovedkort.TxtD3P6.Text = rs("D3P6").Value FrmHovedkort.TxtD3P7.Text = rs("D3P7").Value FrmHovedkort.TxtD3P8.Text = rs("D3P8").Value FrmHovedkort.TxtD3P9.Text = rs("D3P9").Value FrmHovedkort.TxtD3P10.Text = rs("D3P10").Value FrmHovedkort.TxtD3P11.Text = rs("D3P11").Value FrmHovedkort.TxtD3P12.Text = rs("D3P12").Value FrmHovedkort.TxtD3P13.Text = rs("D3P13").Value FrmHovedkort.TxtD3P14.Text = rs("D3P14").Value FrmHovedkort.TxtD3P15.Text = rs("D3P15").Value FrmHovedkort.TxtD3P16.Text = rs("D3P16").Value FrmHovedkort.TxtD3P17.Text = rs("D3P17").Value FrmHovedkort.TxtD4P1.Text = rs("D4P1").Value FrmHovedkort.TxtD4P2.Text = rs("D4P2").Value FrmHovedkort.TxtD4P3.Text = rs("D4P3").Value FrmHovedkort.TxtD4P4.Text = rs("D4P4").Value FrmHovedkort.TxtD4P5.Text = rs("D4P5").Value FrmHovedkort.TxtD4P6.Text = rs("D4P6").Value FrmHovedkort.TxtD4P7.Text = rs("D4P7").Value FrmHovedkort.TxtD4P8.Text = rs("D4P8").Value FrmHovedkort.TxtD4P9.Text = rs("D4P9").Value FrmHovedkort.TxtD4P10.Text = rs("D4P10").Value FrmHovedkort.TxtD4P11.Text = rs("D4P11").Value FrmHovedkort.TxtD4P12.Text = rs("D4P12").Value FrmHovedkort.TxtD4P13.Text = rs("D4P13").Value FrmHovedkort.TxtD4P14.Text = rs("D4P14").Value FrmHovedkort.TxtD4P15.Text = rs("D4P15").Value FrmHovedkort.TxtD4P16.Text = rs("D4P16").Value FrmHovedkort.TxtD4P17.Text = rs("D4P17").Value FrmHovedkort.TxtD5P1.Text = rs("D5P1").Value FrmHovedkort.TxtD5P2.Text = rs("D5P2").Value FrmHovedkort.TxtD5P3.Text = rs("D5P3").Value FrmHovedkort.TxtD5P4.Text = rs("D5P4").Value FrmHovedkort.TxtD5P5.Text = rs("D5P5").Value FrmHovedkort.TxtD5P6.Text = rs("D5P6").Value FrmHovedkort.TxtD5P7.Text = rs("D5P7").Value FrmHovedkort.TxtD5P8.Text = rs("D5P8").Value FrmHovedkort.TxtD5P9.Text = rs("D5P9").Value FrmHovedkort.TxtD5P10.Text = rs("D5P10").Value FrmHovedkort.TxtD5P11.Text = rs("D5P11").Value FrmHovedkort.TxtD5P12.Text = rs("D5P12").Value FrmHovedkort.TxtD5P13.Text = rs("D5P13").Value FrmHovedkort.TxtD5P14.Text = rs("D5P14").Value FrmHovedkort.TxtD5P15.Text = rs("D5P15").Value FrmHovedkort.TxtD5P16.Text = rs("D5P16").Value FrmHovedkort.TxtD5P17.Text = rs("D5P17").Value FrmHovedkort.TxtD6P1.Text = rs("D6P1").Value FrmHovedkort.TxtD6P2.Text = rs("D6P2").Value FrmHovedkort.TxtD6P3.Text = rs("D6P3").Value FrmHovedkort.TxtD6P4.Text = rs("D6P4").Value FrmHovedkort.TxtD6P5.Text = rs("D6P5").Value FrmHovedkort.TxtD6P6.Text = rs("D6P6").Value FrmHovedkort.TxtD6P7.Text = rs("D6P7").Value FrmHovedkort.TxtD6P8.Text = rs("D6P8").Value FrmHovedkort.TxtD6P9.Text = rs("D6P9").Value FrmHovedkort.TxtD6P10.Text = rs("D6P10").Value FrmHovedkort.TxtD6P11.Text = rs("D6P11").Value FrmHovedkort.TxtD6P12.Text = rs("D6P12").Value FrmHovedkort.TxtD6P13.Text = rs("D6P13").Value FrmHovedkort.TxtD6P14.Text = rs("D6P14").Value FrmHovedkort.TxtD6P15.Text = rs("D6P15").Value FrmHovedkort.TxtD6P16.Text = rs("D6P16").Value FrmHovedkort.TxtD6P17.Text = rs("D6P17").Value
21. december 2005 - 09:01
#8
langhåret og langhåret.... ca 4 mm hvor der noget endnu :-) Dim oTxt As Object Dim stRight As String Dim MyArray Dim MyItem MyArray = Array("P", "D0P", "D1P", "D2P", "D3P", "D4P", "D5P", "D6P") For Each oTxt In Me.Controls If TypeName(oTxt) = "TextBox" Then stRight = Mid(oTxt.Name, 4, 99) For Each MyItem In MyArray If (stRight Like MyItem & "[0-9]") Or (stRight Like MyItem & "[1][0-7]") Then oTxt.Value = rs(stRight) End If Next End If Next
21. december 2005 - 09:05
#9
bemærk at en sådan kode ikke kører hurtigere end den du har, tværtimod da der jo er flere tjeck pr linie
21. december 2005 - 09:35
#10
Så der er INGEN reel fordel ved den type kode?
21. december 2005 - 09:49
#11
Jo, den fylder mindre og kan være mere flexibel, men i det her tilfælde er vi for hvert element på formen nødt til at tjekke om det er en tekstbox vi har fat i. Dernæst om om navnet ligner et af de 8 strenge i array ligeledes skal der tjekkes på om der er een eller to cifre i enden streng, endda helt specifikke cifre. Alt det er jo ekstra fyld, som du ikke har med i din gamle kode ..
21. december 2005 - 11:04
#12
et forsøg fra mig, jeg kan ikke teste på db Dim oTxt As String, I As Integer For I = 1 To 17 oTxt = "TxtP" & I FrmHovedkort.Controls(oTxt).Text = rs("P" & I).Value oTxt = "TxtD0P" & I FrmHovedkort.Controls(oTxt).Text = rs("D0P" & I).Value oTxt = "TxtD1P" & I FrmHovedkort.Controls(oTxt).Text = rs("D1P" & I).Value oTxt = "TxtD2P" & I FrmHovedkort.Controls(oTxt).Text = rs("D2P" & I).Value oTxt = "TxtD3P" & I FrmHovedkort.Controls(oTxt).Text = rs("D3P" & I).Value oTxt = "TxtD4P" & I FrmHovedkort.Controls(oTxt).Text = rs("D4P" & I).Value oTxt = "TxtD5P" & I FrmHovedkort.Controls(oTxt).Text = rs("D5P" & I).Value oTxt = "TxtD6P" & I FrmHovedkort.Controls(oTxt).Text = rs("D6P" & I).Value Next
21. december 2005 - 11:16
#13
Ja, det var da et godt alternativ kabbak kan forkortes lidt men burde være ok. Jeg kan heller ike tjekke Dim oTxt As String, I As Integer, J As Long For I = 1 To 17 oTxt = "TxtP" & I FrmHovedkort.Controls(oTxt).Text = rs("P" & I).Value For J = 0 To 6 oTxt = "TxtD" & J & "P" & I FrmHovedkort.Controls(oTxt).Text = rs("D" & J & "P" & I).Value Next Next
21. december 2005 - 11:18
#14
fint bak, jeg tror ikke den kan blive kortere ;-))
21. december 2005 - 11:21
#15
bak > J behøver da vist ikke at være af typen Long
21. december 2005 - 11:21
#16
Nej - det må siges at være nogle glimrende forslag. Jeg kan desværre ikke teste før jul men vender tilbage hurtigst muligt. Jeg fordeler point mellem jer hvis det er OK. Så mangler i bare at svare og igen tak til jer begge - I er der altid når vi amatører har behov for eksperthjælp. Rigtig God Jul vh Steen
21. december 2005 - 11:35
#17
kabbak -> nej, det behøver den ikke. den kunne også være byte eller integer, men stort set alle programmer idag er 32 bit programmer (bla. excel). Dette bevirker at Long (som er 32 bit) er den størrelse, der passer bedst til programmerne og der vil ikke være noget sparet hverken i hukommelse eller hastighed ved at bruge mindre. Hvis en lagerenhed er 32 sparer man jo intet ved kun at fylde den halvt. I det tilfælde kan der nemlig ikke være 2 halve i en hel .-) Derfor bruger jeg altid typen Long
21. december 2005 - 11:39
#18
steen -> det er helt i orden :-)
21. december 2005 - 11:53
#19
Tak for forklaringen bak, så blev jeg også klog på det. Steen, jeg håber at det virker, så jeg smider også et svar. Det sidste vi fandt frem til burde være det hurtigste, da vi ikke skal finde tekstboksen først, inden vi skriver i den, men kalder den ved dens navn.
25. december 2005 - 01:54
#20
Koden fungerer selvfølgelig perfekt - tak for hjælpen :0)
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig