Avatar billede BIRGER Seniormester
23. november 2003 - 19:55 Der er 10 kommentarer og
1 løsning

Stort begyndelses bogstav

Jeg har et vba-prog---vedlagt-- der trækker data fra acces til exel.

De data står med store bogstaver, jeg ville gerne have at det kun er begyndelsesbogstavet i hver ord der stort. Kan det lægges ind i prog?
Sub Kunde()
Kundenr = InputBox("indtast kundenr")
If Kundenr = "" Then Exit Sub
   
    Dim objConn As ADODB.Connection
    Dim objRs As ADODB.Recordset
    Dim strConnString As String
    Dim strSQL As String
 
    Set objConn = New ADODB.Connection
    Set objRs = New ADODB.Recordset
   
    strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\dokumenter\kartoteker.MDb"
    objConn.Open strConnString
   
    strSQL = "SELECT Kundenr,Navn1, Adresse, postby FROM kundekartotek WHERE Kundenr = " & Kundenr
    objRs.Open strSQL, objConn
       
    If Not objRs.EOF Then
       
        Range("A3") = objRs("Kundenr")
        Range("a4") = objRs("Navn1")
        Range("a5") = objRs("Adresse")
        Range("a6") = objRs("postby")
       


objRs.Close
    objConn.Close
 
Else
    MsgBox "Kundenr. findes ikke"
   

    End


End If
 
End Sub
Avatar billede arne_v Ekspert
23. november 2003 - 20:00 #1
Lav en lille funktion til set.

Eksempel:

Function cap(s As String) As String
    cap = UCase(Left(s, 1)) & LCase(Right(s, Len(s) - 1))
End Function
Avatar billede joern Nybegynder
23. november 2003 - 20:03 #2
Hej.

Måske er der en smartere måde men dette vil virke:

navn1= left(navn1,1) & lcase(mid(navn1,2))

dersom navn1 ikke altid er med uppercase:

navn1= ucase(left(navn1,1)) & lcase(mid(navn1,2))

M.v.h. Jørn
Avatar billede kjeld_klit Nybegynder
23. november 2003 - 20:16 #3
"De data står med store bogstaver, jeg ville gerne have at det kun er begyndelsesbogstavet i hver ord der stort. Kan det lægges ind i prog?"

VB & VBA har en funktion der gør det!

StrConv(string, vbUpperCase)
Avatar billede arne_v Ekspert
23. november 2003 - 20:22 #4
Du mener:

StrConv(string, vbProperCase)

?
Avatar billede arne_v Ekspert
23. november 2003 - 20:24 #5
Hvis det virkeligt er hvert ord d.v.s. at "ABC DEF" skal blive
"Abc Def" og ikke "Abc def", så er det løsningen.
Avatar billede kjeld_klit Nybegynder
23. november 2003 - 20:25 #6
Ja selvfølgelig, du har ret
Avatar billede BIRGER Seniormester
23. november 2003 - 21:38 #7
hvordan sættes det ind i vba-prog? det er cellerne a3 a4 a5 a6...altså syntaxen?
Avatar billede arne_v Ekspert
23. november 2003 - 21:43 #8
Hvis:
  Range("A3") = cap(objRs("Kundenr"))
gør det som jeg tro at den gør, så:
  Range("A3") = StrConv(objRs("Kundenr"),vbProperCase)
eller:
  Range("A3") = objRs("Kundenr")
afhængig af om det er hvert ord eller hele variablen der skal kapitaliseres.
Avatar billede BIRGER Seniormester
23. november 2003 - 21:54 #9
det virker bare  mange tak!
Avatar billede arne_v Ekspert
23. november 2003 - 21:57 #10
(du opdagede at jeg havde byttet lidt om på linierne til sidst)
Avatar billede joern Nybegynder
23. november 2003 - 22:02 #11
Hej.

Den med StrConv(string, VbProperCase) har jeg taget i anvendelse, den kendte jeg ikke til.  Bruger VB5.

M.v.h.  Jørn
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