26. september 2001 - 23:49Der er
25 kommentarer og 1 løsning
Hvad er der galt med dette?
Private Sub cmdnæste4_Click() If Chkbeligg = True Then form10.lstsp41.AddItem \"Pga. dets beliggenhed\" End If If chkvenner = True Then form10.lstsp42.AddItem \"Mange af mine venner går her\" End If If chkeneste = True Then form10.lstsp43.AddItem \"Det var det eneste sted jeg kunne komme ind\" End If If chktradi = True Then form10.lstsp44.AddItem \"Tradition\" End If If chkandet = True Then form10.lstsp45.AddItem \"Andet\" End If
Line 2: Property ScaleWidth in Form5 could not be set. Line 2: Property ScaleHeight in Form5 could not be set. Men de har vel ikke så meget med dette at gøre...
hej yebzqey, selvom du er smuttet offline kan vi jo godt lave lidt forberedelse på du komemr igen.
Det som virker lidt mystisk på mig med din kode er, at du vil bruge en commandbutton til at registrere på form10 om nogle har afkrydset dine checkboxe - man plejer at kigge på checkboxens click event, (det ville forresten også være mere hensigtsmæssigt hvis du puttede alle dine checkboxe i en array)... og at du har så mange lstsp uden at de er i array... jeg kommer helt i tvivl om du er sikker på du virkelig vil have checkboxe og ikke optionbuttons?
Hvis du laver dine checkboxe om til en array kan det komme til at se sådan ud i koden (på nær jeg ikke gad lave 10 forme så tilføj formen foran lstSvar):
Private Sub chkHvorfor_Click(Index As Integer) If chkHvorfor(Index).Value = vbtrue Then \'find ud af hvilken linje fra lstSvar der skal fjernes \'og fjern den pågældende linje Else Select Case Index Case 0 lstSvar.AddItem \"Pga. dets beliggenhed\" Case 1 lstSvar.AddItem \"Mange af mine venner går her\" Case 2 lstSvar.AddItem \"Det var det eneste sted jeg kunne komme ind\" Case 3 lstSvar.AddItem \"Tradition\" Case 4 lstSvar.AddItem \"Andet\" End Select End If End Sub
Hvis du af en eller anden grund absolut *vil* have svarene i hver sin listbox (gør det ganske vist nemmere at slette den rigtige linje, du kan jo bare lave \"lstSvar(Index+40).Clear\"), så istedetfor at have lstsp41 - 45 så lav istedet lstsp(41-45) og ændr ovenstående kode til \"lstsp(Index+40).AddItem\" - arrays er en god ting så brug dem når du kan.
men hvis du ikke er \"nødt til\" at have form10 loadet før brugeren har afkrydset sine checkboxe, så overvej at gøre dette istedetfor:
i query unload på din form loader du form10, i form10\'s load event aflæser du checkboxene, herefter unloader du din form (den er færdig med query unload) og form10 dukker op (form10\'s load event er færdig) - og du behøver ikke at tænke på om din bruger afkrydsede og genkrydsede checkboxene ti tusind gannge, for nu er de (checkboxene) væk og han/hun kan ikke komme til at fortryde og form10 viser den korrekte liste :-P
ups håber ikke jeg kom til at forvirre dig med at blande lstsp og lstsvar - brugte lstsvar i mit eksempel hvor der kun er en liste og du bruger lstspnummer hvor du har flere listboxe
2) ups nu tror jeg at jeg har forstået hvad du vil med din næste knap - glem det jeg lige har skrevet i min kommentar 00:42:57 (jeg burde vist følge dit eksempel og smutte i seng også) og kig istedet på den her kode:
Dim I As Integer Dim mintekst(1 To 5) As String
mintekst(1) = \"Pga. dets beliggenhed\" mintekst(2) = \"Mange af mine venner går her\" mintekst(3) = \"Det var det eneste sted jeg kunne komme ind\" mintekst(4) = \"Tradition\" mintekst(5) = \"Andet\"
For I = 1 To 5 If chkHvorfor(I).Value = True Then lstSvar.AddItem mintekst(I) Next I
hvilket også kan blive til listsvar.AddItem chkHvorfor(Index).Caption så du slipper for at dimensionere de fem \"minstekst\" variabler - og nu skal jeg nok skrubbe i seng :-)
Okay... Slap af. Jeg er i gang med et spørgeskema, der er opdelt i 9 spørgsmål på hver deres form. Resultaterne skal gemmes i nogle lister i form10. Det ville være bedst hvis programmet kunne generere en txt-fil for hvert udfyldt spørgeskema, men jeg er først startet med vb for en uge siden... Derfor fatter jeg heller ikke så meget af alt det du skriver.
Jeg er ked af du ikke forstår mine svar, jeg skal nok lade være med at svare på resten. Men jeg syntes bestemt ikke du har grund til at sige at jeg skal slappe af! Selvom dit spørgsmål lød \"hvad der er i vejen\" har jeg vel lov til at svare uddybende og give foreslag til hvordan du kan gøre det bedre. Og hvis du istedet havde fortalt hvad du ikke forstod, havde jeg da gerne forklaret mere.
Jeg håber når angelod kommer tilbage at han/hun vil forklare dig det bedre, og lære dig noget om variabler og arrays.
Hæhæ.. Jeg vil blot anbefale dig at få en bog om VB programmering for nybegyndere.. Al begyndelse er svær, og hvad Cellaneous gjorde her var faktisk at give dig en uddybende forklaring, ikke bare på hvad problemet kunne være, men også hvordan du kunne optimere det og få noget bedre ud af det.. For ikke at nævne det faktum at han rent faktisk også har vist dig hvordan du formaterer koden mere overskueligt..
Så jeg må da som Cellaneous sige, at du ikke bør bede folk om at slappe af når de giver dig et svar, men derimod spørge nærmere omkring det du ikke kan finde ud af.
Det var ikke min mening at lyde afvisende... Undskyld. Jeg mente bare at jeg ikke lige forstod. Jeg syntes egentlig at det simple spørgsmål afslørede mit manglende kendskab til vb. Men jeg synes egentlig at mit spørgsmål er ret simpelt. Hvorfor virker det jeg har skrevet ikke?
Jeg kan ikke se om det er det, men vil du virkelig tilføje svaret til forskellige lister alt efter hvilket det er, eller er du kommet til at skrive 41, 42 osv ved et uheld?
hvilken form er din startop-form? hvilken form er du i nu? har du på noget som helst tidspunkt skrevet noget der bare ligner \"load form10\" i en form med et nummer mindre end 10? lidt mere info så skal vi nok finde ud af det :-)
Kan jeg sende dig en zip fil med projektet? Jeg har ikke på noget tidspunkt skrevet load form10, men med de tidligere spørgsmål hvor der er optionboxes kan jeg sagtens gemme i lister i form10
du må gerne sende mig en zip fil hvis du har lyst til det :-) kkgnsdlkng@hotmail.com
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.