Avatar billede per2edb Praktikant
07. december 2013 - 18:20 Der er 9 kommentarer og
1 løsning

Kan for og efternavn sættes sammen i VBA / SQL

Kan for og efternavn sættes sammen i VBA / SQL uden at skulle oprette en forespørgsel

Jeg har prøvet dette men det virker ikke.

SQL1 = "SELECT Kontaktpersoner.Fornavn" & " " & "Kontaktpersoner.Efternavn"
07. december 2013 - 18:33 #1
Hvad med

SQL1 = "SELECT Kontaktpersoner.Fornavn + ' ' + Kontaktpersoner.Efternavn"
Avatar billede mugs Novice
07. december 2013 - 20:49 #2
Db 48?
Avatar billede larsen45 Juniormester
07. december 2013 - 22:51 #3
SELECT fornavn,efternavn FROM tabelnavn;
--------------------------------------------------

SQL = "SELECT fornavn,efternavn FROM tabelnavn"
set rs = myConn.execute(SQL)
(myConn skal så bare ændres til din database connection streng.)

response.write rs("fornavn") & "<br>"
response.write rs("efternavn") & "<br>"

Forsat god weekend.
Avatar billede bvirk Guru
07. december 2013 - 23:26 #4
sql engine er lige så vba 'legal expression' krævende som udviklingssystemet overfor dig per2edb

Prøv lige at portere dette til immediate vinduet!
?"SELECT Kontaktpersoner.Fornavn & "" "" & " & " " & "Kontaktpersoner.Efternavn"

Antager at det med " From Kontaktpersoner" enten ikke optræder i dit setop, eller at du blot her sætter fokus på det der fejler.
Avatar billede bvirk Guru
07. december 2013 - 23:45 #5
Inden andre kommer efter mig - dette fyldestgørende:
?"SELECT Kontaktpersoner.Fornavn & "" "" & " & "Kontaktpersoner.Efternavn"
Avatar billede terry Ekspert
08. december 2013 - 10:45 #6
You say you have tried

SQL1 = "SELECT Kontaktpersoner.Fornavn" & " " & "Kontaktpersoner.Efternavn"

but you don't say how you are executing the SQL which is necessary to get the result.

If your using Docmd.runsql then you wont get a result because it only works with action queries http://msdn.microsoft.com/en-us/library/office/ff194626.aspx

You could use dlookup which you would obviously need to execute twice to get both name parts. Otherwise create a recordset selecting both fields at the same time


and your SQL needs to include the table your data is in.
Avatar billede hugopedersen Nybegynder
08. december 2013 - 11:23 #7
Antagelse:
Tabel = tblNavne
Fornavnfelt = fldFornavn
Efternavnfelt = fldEfternavn

Public Sub test()
  Dim strSQL As String
  Dim rst As New ADODB.Recordset
 
  strSQL = "SELECT [fldFornavn] & ' ' & [fldfldEfternavn] AS fldNavn FROM tblNavne;"
  rst.Open strSQL, CurrentProject.Connection, adOpenStatic, adLockOptimistic
 
  While Not rst.EOF
    MsgBox Nz(rst!fldNavn, "Ukendt navn")
    rst.MoveNext
  Wend

End Sub
Avatar billede hugopedersen Nybegynder
08. december 2013 - 11:24 #8
Jeg kom lige til at lave en fejl - fldfldEfternavn skal selvfølgelig være fldEfternavn
Avatar billede per2edb Praktikant
08. december 2013 - 12:19 #9
Thor Østergård's løsning virker:

SQL1 = "SELECT Kontaktpersoner.Fornavn + ' ' + Kontaktpersoner.Efternavn"

PAS PÅ:

Jeg havde forinden mit spørgsmål prøvet det samme, men jeg havde et mellemnavn flettet ind. Det viser sig at et tomt mellemnavn ødelægger kaldet - Pas på!

HUSK Nz altså f.eks. Nz(Kontaktpersoner.Fornavn)

Thor vil du lave det så du får point
Avatar billede per2edb Praktikant
09. december 2013 - 08:36 #10
Du skal have point
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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