13. september 2002 - 15:23Der er
8 kommentarer og 1 løsning
Foreslå bogstavskode
Jeg er igang med at lave en database, der indeholder bogstavskoder: AA AB AC AE Osv. Jeg vil gerne have databasen til at foreslå et ledigt endelsesbogstav, når jeg siger at det første bogstav skal være f.eks. A. I ovenstående eksempel, skal database så foreslå koden: AD!
NB. Funktionen virker p.t. kun på store bogstaver og kun på det engelske alfabet (Z = 90). Hvis du skal have de danske bogstaver med, skal der lige laves nogen ekstra krøller i løkkerne.
Hovedelementet i programmet er funktionen Chr, der returnerer et tegn, der er tilknyttet den angivne charkode. Charkoden for "A" er 65 og for "a" er 97.
Forklaring linie for linie:
numstr1 = 65 strFound = False numstr1 og numstr2 er tællere for henholdsvis det første og det andet tegn i din bogstavkode. De sættes begge til at starte med 65 som er "A". strFound er en boolsk variabel, der angiver om en ledig kode er fundet - den sættes naturligvis til false (dvs. ikke fundet) til at begynde med.
Do Until numstr1 = 90 Or strFound Løkke for numstr1, der fortsætter enten til 90 (="Z") eller til en ledig kode er fundet (strFound=true).
numstr2 = 65 BEMÆRK at jeg har flyttet numstr2 = 65 ind i den første løkke.
Do Until numstr2 = 90 Or strFound Løkke for numstr2, der fortsætter enten til 90 (="Z") eller til en ledig kode er fundet (strFound=true).
strKode = Chr(numstr1) & Chr(numstr2) Bogstavkoden sammensættes ved hjælp af de to tællere og Chr funktionen.
If IsNull(DFirst("Bogstavkode", "Bogstavkodetabel", "Bogstavkode='" & strKode & "'")) Then strFound = True NyBogstavkode = strKode Hvis bogstavkoden IKKE findes i tabellen, sættes strFound til at være sand og NyBogstavkode (dvs. det er det funktionen returnerer) sættes til strKode.
Else numstr2 = numstr2 + 1 End If Hvis koden findes i databasen, sættes tællerværdien af numstr2 til at være 1 højere. numstr1 ændres ikke - dvs. først undersøges A? hvor ? kan være fra "A" til "Z".
Loop Looper gennem alle kobinationer af numstr2
numstr1 = numstr1 + 1 Loop Looper gennem alle kobinationer af numstr1
Jeg kan ikke forlange mere, tusinde tak for hjælpen. Jeg har fået det til at virke, men det er jo rart at vide hvad der foregår, så jeg kan modificere den præcist til mit behov.
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.