Avatar billede slejpnir Nybegynder
04. februar 2002 - 10:57 Der er 8 kommentarer og
1 løsning

Arrays: indtaste navn få returneret nr.

Dim Personnavn(3) As String
Dim navnID As Integer
Når jeg indtaster et indexnr. får jeg returneret et navn med følgende kode:

Private Sub Command3_Click()
navnID = InputBox("skriv et indexnr")
Text1.Text = Personnavn(navnID)
End Sub

hvordan skal koden se ud, hvis jeg vil indtaste et navn og få returneret et indexnr.?

Avatar billede proaccess Nybegynder
04. februar 2002 - 11:17 #1
Private Sub Command3_Click()
  navnID = InputBox("Skriv et navn")
  dim intLoop as integer
  for intLoop=LBound(PersonNavn) To UBound(PersonNavn)
    if PersonNavn(intLoop)=navnID Then Text1.Text=intLoop
  next
End Sub

Kort fortalt: Du indtaster navnet, VB løber gennem alle navne, for at finde et som er identisk, når/hvis det findes skrivet ID'et i Text1...
Avatar billede martin_moth Mester
04. februar 2002 - 11:54 #2
I svaret fra proaccess skal det måske nævnes, at du kun får returneret det FØRSTE navn/index der passer. Det kunne jo tænkes, at der var flere, der opfyldte søgekriteriet. Bare du tænker over det... /Martin
Avatar billede slejpnir Nybegynder
04. februar 2002 - 11:55 #3
Jeg får desværre Type mismatch ved din første kodelinie? Har kopieret din formel over..
Avatar billede proaccess Nybegynder
04. februar 2002 - 11:58 #4
tilfør:
  Dim navnID As String

som første linie i funktionen...
SORRY ;-(
Avatar billede slejpnir Nybegynder
04. februar 2002 - 11:59 #5
>martin_moth Jotak, og så er det jo fristende at spørge om, hvordan jeg så koder dette. Så det må blive det næste spørgsmål, som jeg beder om hjælp til besvarelse af. Men jeg er nybegynder, så jeg må hellere tage én ting ad gangen.
Avatar billede proaccess Nybegynder
04. februar 2002 - 12:03 #6
>martin: Det er faktisk SIDSTE index, der har et navn, som er lig navnID, som returneres...  Der løbes gennem HELE arrayet...
Avatar billede proaccess Nybegynder
04. februar 2002 - 12:06 #7
>slejpnir: Du kunne overveje at returnere svaret i en listboks, i stedet for en tekstboks...

Private Sub Command3_Click()
  Dim navnID As String
  navnID = InputBox("Skriv et navn")
  dim intLoop as integer
  List1.Clear
  for intLoop=LBound(PersonNavn) To UBound(PersonNavn)
    if PersonNavn(intLoop)=navnID Then List1.AddItem intLoop
  next
End Sub
Avatar billede slejpnir Nybegynder
04. februar 2002 - 12:13 #8
Mange tak proaccess Det hjalp! Jeg kigger også på listen lidt senere og prøver om jeg kan finde ud af, hvad jeg skal gøre, hvis der er flere ens navne.
Avatar billede martin_moth Mester
04. februar 2002 - 22:07 #9
>proaccess: Ja, naturligvis er det den sidste. Beklager tanketorsken ;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operationscenter i Cyberdivisionen Hvidovre

Netcompany A/S

Linux Operations Engineer

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Capgemini Danmark A/S

Client Partner