01. november 2001 - 12:45Der er
6 kommentarer og 1 løsning
Arrays returnere nr ved indtastning af navn i inputbox
Jeg har følgende: Dim personnavn(3) as string dim navnid as integer
Når jeg ønsker at få returneret et navn på grundlag af et indtastet nr. i inputboxen fungerer følgende: Private Sub CommandButton1_Click() navnid = InputBox(\"Vis navnet på nr. \") MsgBox \"Navn nr. \" & navnid & \"er \" & personnavn(navnid) End Sub Problem: Når jeg på grundlag af et indtastet navn i inputboxen ønsker at få returneret nummeret på personnavnet går det galt. Hvem gider at hjælpe?
Dim personnavn(3) As String Dim navnid As Variant Private Sub Command1_Click() navnid = InputBox(\"Vis navnet på nr. \") If IsNumeric(navnid) Then MsgBox \"Navn nr. \" & navnid & \" er \" & personnavn(navnid) Else For i = 0 To UBound(personnavn) If InStr(navnid, personnavn(i)) Then MsgBox \"Navnet \" & personnavn(i) & \" har \" & \" id \" & i End If Next i End If End Sub
Private Sub Form_Load() personnavn(0) = \"hanseline\" personnavn(1) = \"bent\" personnavn(2) = \"hans\" personnavn(3) = \"bente\" End Sub
Nu har du vist slået to fluer med ét smæk. Det er vel også derfor, du har ændret dim\'en til variant? Når jeg taster nummeret ind, får jeg straks navnet, men når jeg taster navnet ind, får jeg først en meddelse: \"Navnet har ID 0\". Hvordan undgår jeg denne meddelelse. Hvad betyder inStr? Hvad betyder Ubound? Jeg har givet dig ekstra point i håb om at du så gider forklare mig ovenstående som tillæg. OK?
inStr: det betyder at den tjekker om (a,b) a kan findes i b, f.eks. a= \"to\" og b = \"beggeto\" giver et positivt resultat.
variant: jeps variant fylder lidt mere i hukommelsen men til gengæld kan man smide i den næsten hvad det skal være...
Ubound>> betyder \"upper - boundary\" -altså øvre grænse, den satte jeg for at man nemt kunne ændre antallet af personer, den tager bare antallet af \"indgange\" i det array.
-den dér med id 0 ved jeg ikke heeelt hvorfor, men kigger lige på det.
>Jelzin101 Desværre har jeg ikke forstået det endnu. Gider du at se på hele min kode. Kan du uden al det rafinerede blot udfylde den sidste del for mig uden at forlade mine variabler og primitive måde? Du skal få ekstra point ved en anden lejlighed. Tak!
Option Explicit Dim personnavn(3) As String Dim navnid As Integer
Private Sub cmdIndlaes_Click() For navnid = 1 To 3 personnavn(navnid) = InputBox(\"skriv et navn, navn nr.: \" & navnid) Next
End Sub
Private Sub cmdvis_Click() For navnid = 1 To 3 MsgBox \"Navn nr. \" & navnid & \"er \" & personnavn(navnid) Next
End Sub
Private Sub CommandButton1_Click() navnid = InputBox(\"Vis navnet på nr. \") MsgBox \"Navn nr. \" & navnid & \"er \" & personnavn(navnid)
End Sub
Private Sub CommandButton2_Click() ? = inputbox(\"Vis nummeret på navn \") MsgBox \"Nummeret på navn er \" & navnnummer
sagtens :) Option Explicit Dim personnavn(3) As String Dim navnid, navnnummer As Integer Dim navn, besked As String
Private Sub cmdIndlaes_Click() For navnid = 1 To 3 personnavn(navnid) = InputBox(\"skriv et navn, navn nr.: \" & navnid) Next navnid
End Sub
Private Sub cmdvis_Click() For navnid = 1 To 3 MsgBox \"Navn nr. \" & navnid & \"er \" & personnavn(navnid) Next navnid
End Sub
Private Sub CommandButton1_Click() navnid = InputBox(\"Vis navnet på nr. \") MsgBox \"Navn nr. \" & navnid & \"er \" & personnavn(navnid)
End Sub
Private Sub CommandButton2_Click() navn = InputBox(\"Vis nummeret på navn \") navnnummer = -50 \'den bliver sat for at man kan tjekke om navnet ikke eksisterer
For navnid = 1 To 3 If InStr(navn, personnavn(navnid)) Then \' hvis \"navn\" findes i \"personnavn\" nr. navnid navnnummer = navnid \' bliver navnnummer sat til at være den navnid der passer til End If Next navnid
If navnnummer = -50 Then \' hvis der ikke er fundet et navn er den jo stadig -50 besked = \"navnet du søgte fandtes ikke\" \' istedet for 2 msg bla bla bla laver vi det i en streng Else besked = \"Nummeret på navn er \" & navnnummer \' samme som ovenstående
End If
MsgBox besked \'her bruger vi så den besked vi har lavet lige ovenover End Sub
:) hvis du ikke forstår det hele skal du bare spørge - så svarer jeg (engang efter weekenden....)
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.