Avatar billede stry Nybegynder
03. marts 2006 - 13:34 Der er 6 kommentarer og
1 løsning

SQL kombineret med egen funktion

Jeg bruger følgende SQL til at oprette en ny tabel:

SELECT Kontakter_Test_tbl.Id, Kontakter_Test_tbl.Navn, Kontakter_Test_tbl.Telefon, Kontakter_Test_tbl.Mobil INTO Kontakter_renset_tbl
FROM Kontakter_Test_tbl;

...men jeg vil gerne manipulere data i kolonnerne .telefon og .mobil "på vejen" mellem de to tabeller ved at køre en funktion som renser telefonnr for landekode og mellemrum.
Funktionen ser således ud:

Public Function RensTlfNr(strNr As String)
Dim i As Integer 'tællevariabel
strNr = Replace(LCase(strNr), "+45", "") 'fjerner "+45 "
strNr = Replace(LCase(strNr), " ", "") 'fjerner mellemrum

RensTlfNr = strNr
End Function

Nu er spørgsmålet hvordan jeg kan kombinere min SQL med min funktion?

Jeg skal lige bemærke at jeg ikke ønsker funktionen "indbygget" i SQL'en, den skal afvikles selvstændigt og kunne i principet være en hvilken som helst funktion.

Håber jeg har gjort mig nogenlunde forståelig.

På forhånd tak.
Avatar billede kabbak Professor
03. marts 2006 - 13:50 #1
SELECT Kontakter_Test_tbl.Id, Kontakter_Test_tbl.Navn,  RensTlfNr(Kontakter_Test_tbl.Telefon),  RensTlfNr(Kontakter_Test_tbl.Mobil) INTO Kontakter_renset_tbl
FROM Kontakter_Test_tbl;

noget i denne stil
Avatar billede stry Nybegynder
03. marts 2006 - 13:53 #2
Er det så simpelt at jeg bare kan køre mine funktioner direkte i SQL!?

Prøver lige og vender tilbage....
Avatar billede stry Nybegynder
03. marts 2006 - 14:01 #3
Det virker ikke....

Private Sub Kommandoknap1_Click()
On Error GoTo Err_Kommandoknap1_Click

    Dim stDocName As String

    stDocName = "SELECT Kontakter_Test_tbl.Id, Kontakter_Test_tbl.Navn,  RensTlfNr(Kontakter_Test_tbl.Telefon),  RensTlfNr(Kontakter_Test_tbl.Mobil) INTO Kontakter_renset_tbl FROM Kontakter_Test_tbl;"

    DoCmd.RunSQL (stDocName)

Exit_Kommandoknap1_Click:
    Exit Sub

Err_Kommandoknap1_Click:
    MsgBox Err.Description
    Resume Exit_Kommandoknap1_Click
   
End Sub


Fejl:
"Der er en ikke-defineret funktion "RensTlfNr" i udtrykket."
Avatar billede kabbak Professor
03. marts 2006 - 14:04 #4
Hvor har du funktionen, den skal være i et Modul ??
Avatar billede stry Nybegynder
03. marts 2006 - 14:07 #5
Perfekt!

Jeg havde bare "smidt" den i formularens kodevindue, men nu virker det.

Tak for hjælpen, smid et svar :-)
Avatar billede kabbak Professor
03. marts 2006 - 14:09 #6
et svar ;-))
Avatar billede kabbak Professor
03. marts 2006 - 14:11 #7
tak for 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