Avatar billede tolveren Nybegynder
13. september 2005 - 11:56 Der er 63 kommentarer og
1 løsning

Splitfunktion i notatfelt

Jeg har i spørgsmål www.eksperten.dk/spm/635904 fået fint svar på hvordan jeg finder et Journalnr xxxxx i et notatfelt.
Men nu har jeg brug for at kunne finde flere af disse
Journalnr xxxxx i samme notatfelt. Disse Journalnr xxxxx kan være forskellige og logger i det samme notatfelt. Hvordan får jeg læst disse Jornalnr xxxxxx, Journalnr yyyyy over i en tabel eller over i en fil ?
Avatar billede terry Ekspert
13. september 2005 - 14:37 #1
Function GetNumbers()
Dim strTest As String


strTest = "asaadada journalnr 123456 jkjlkjkjlkjlkjlkjlkj journalnr 567890 jkjlkjjjkkj"




End Function

Public Function Journal(felt1)
Dim VARa As String
Dim O As Variant
Dim i As Integer



If Len(felt1) > 0 Then
    O = Split(felt1, "journalnr")
    If UBound(O) > 0 Then
    For i = 1 To UBound(O)
        VARa = Left(O(i), 7)
        Journal = Right(VARa, 6)
       
        Debug.Print Journal
        'You can use Docmd.runsql INSERT into SomeTableOrOther......"
       
    Next i
    Else
        Journal = "Journalnr findes ikke
Avatar billede tolveren Nybegynder
13. september 2005 - 14:42 #2
Jeg prøver lige og tak indtil videre
Avatar billede tolveren Nybegynder
13. september 2005 - 14:49 #3
Hej Terry. Jeg er ikke så skrap. Har du også kodeeksempel til sql linjen ?
Jeg går ud fra at jeg ikke skal anvende din testlinje ?

Public Function Journal(notatfeltet)
Dim VARa As String
Dim O As Variant
Dim i As Integer



If Len(felt1) > 0 Then
    O = Split(felt1, "journalnr")
    If UBound(O) > 0 Then
    For i = 1 To UBound(O)
        VARa = Left(O(i), 7)
        Journal = Right(VARa, 6)
       
        Debug.Print Journal
        'You can use Docmd.runsql INSERT into SomeTableOrOther......"
       
    Next i
    Else
        Journal = "Journalnr findes ikke
Avatar billede terry Ekspert
13. september 2005 - 14:54 #4
You need a table with a field to hold the numbers

table name = tblJournalNumbers
field name  JournalNumber



Docmd.runsql "INSERT into tblJournalNumbers (JournalNumber) VALUES ('" & Journal & "')"
Avatar billede terry Ekspert
13. september 2005 - 15:00 #5
Public Function Journal(felt1)
Dim VARa As String
Dim O As Variant
Dim i As Integer

    If Len(felt1) > 0 Then
        O = Split(felt1, "journalnr")
        If UBound(O) > 0 Then
        DoCmd.SetWarnings False
        For i = 1 To UBound(O)
            VARa = Left(O(i), 7)
            Journal = Right(VARa, 6)
           
            DoCmd.RunSQL "INSERT into tblJournalNumbers (JournalNumber) VALUES ('" & Journal & "')"
           
        Next i
        Else
            Journal = "Journalnr findes ikke"
        End If
       
        DoCmd.SetWarnings True
    End If
End Function
Avatar billede tolveren Nybegynder
13. september 2005 - 15:14 #6
Jeg har lavet en knap og indsat
koden call Journal.
Det virker ikke. Kan du give mig et tip
Avatar billede terry Ekspert
13. september 2005 - 15:25 #7
you need to call the function with the memo field contents

something like

Journal YourMemoField
Avatar billede tolveren Nybegynder
13. september 2005 - 15:34 #8
Jeg prøver at kalde funktionen fra en forespørgsel. Udtryk1: Journal([notatfeltet])
men den dør på kørsel af sql. I forespørgslen har jeg også andre call's
Avatar billede tolveren Nybegynder
13. september 2005 - 15:36 #9
Funktionen fangede godt nok det sidste Journalnr og lagde det i forespørgslen. Men meningen var jo også at det skulle lægges i en særlig tabel med hver sin række.
Avatar billede terry Ekspert
13. september 2005 - 15:38 #10
Why are you calling the function from a query? The code will NOT return all journal numbers it will put them in a table.
Avatar billede tolveren Nybegynder
13. september 2005 - 15:44 #11
Når jeg skriver

call Journal (notatfelt)

og kører det fra en knap,
så kører funktionen tilsyneladende, men numrene ligger ikke i tabellen ?
Avatar billede terry Ekspert
13. september 2005 - 15:51 #12
is it possible for you to send me your dB and I will take a look this evening?

eksperten@NOSPAMsanthell.dk

remove NOSPAM
Avatar billede tolveren Nybegynder
13. september 2005 - 16:15 #13
mangler der noget select from i sql-sætningen ?
Avatar billede terry Ekspert
13. september 2005 - 17:56 #14
No, the SQL should be OK with just a simple INSERT. But it only INSERTS the journal numbers.
Avatar billede tolveren Nybegynder
14. september 2005 - 11:11 #15
Hej Terry. Måske har du tid. Jeg har problemer med at få sql til at køre fra funktionen. Kan jeg mangle en reference eller andet. Jeg har prøvet at lave en tilføjelsesforespørgsel og lagt den ind i funktionen. Den vil heller ikke afvikle docmd.runsql
Avatar billede terry Ekspert
14. september 2005 - 12:04 #16
can you see if the code is executed?

Comment out the lines

DoCmd.SetWarnings False
and
DoCmd.SetWarnings True

If the line of code
Avatar billede terry Ekspert
14. september 2005 - 12:05 #17
..
DoCmd.RunSQL "INSERT into tblJournalNumbers (JournalNumber) VALUES ('" & Journal & "')"

gets executed then you should get a message.

You can also set a breakpoint at that line
Avatar billede tolveren Nybegynder
14. september 2005 - 12:24 #18
no message. jeg har også prøvet at slå warnings fra. Der kommer ingen fejltekst.
Proceduren blir ikke kaldt på den rigtige måde. Jeg anvender en knap:
Call Journal(notatfeltet) og koden i proceduren:

Public Function Journal(notatfeltet)
Dim VARa As String
Dim O As Variant
Dim i As Integer
    If Len(notatfeltet) > 0 Then
        O = Split(notatfeltet, "Journalnr")
        If UBound(O) > 0 Then
       
        'DoCmd.SetWarnings False
       
        For i = 1 To UBound(O)
            VARa = Left(O(i), 7)
            Journal = Right(VARa, 6)
           
          DoCmd.RunSQL "INSERT into [Data_udtræk] (Data) VALUES ('" & Journal & "')"
                     
           
        Next i
        Else
            Journal = "Journalnr findes ikke"
        End If
       
        'DoCmd.SetWarnings True
End If
End Function
,,,,,,,,,,,
jeg har en tabel: tbloplysninger med et felt "notatfeltet".
Og jeg har en tabel Data_udtræk med et felt "Data" som også har notatformat
,,,,,,,,,,,
Journalnr skal udtrækkes fra "notatfeltet"(kun en række) og insertes i "Data" hvor der gerne skulle optræde flere rækker med de fundne Journalnr. Går til frokost nu.
Avatar billede terry Ekspert
14. september 2005 - 12:59 #19
it should NOT be necessary to us CALL

this should be enough

Journal notatfeltet

If you set a breakpoint at the first line of code

if....

and then press the button, do you stop at the first line of code?
Avatar billede tolveren Nybegynder
14. september 2005 - 13:22 #20
I can set a toggle breakpoint. Er det OK. Og hvilken button do I press. I have made a macro med the sql, and can execute outside the procedure. I tried put the macro insode the procedure, but it did not execute
Avatar billede terry Ekspert
14. september 2005 - 13:29 #21
13/09-2005 15:51:05
Avatar billede tolveren Nybegynder
14. september 2005 - 14:15 #22
forsøgt at sende via TDC online mail. Vil ikke lykkes. Prøver i aften igen
Avatar billede terry Ekspert
14. september 2005 - 14:16 #23
it may be an idea to ZIP the database

and remember to remove NOSPAM
Avatar billede tolveren Nybegynder
14. september 2005 - 14:17 #24
thank you
Avatar billede terry Ekspert
14. september 2005 - 15:59 #25
have you sent your database?
Avatar billede tolveren Nybegynder
14. september 2005 - 17:58 #26
Yes
Avatar billede terry Ekspert
14. september 2005 - 20:01 #27
I have NOT received it!
Avatar billede terry Ekspert
15. september 2005 - 11:38 #28
can you send it again. Please make sure that you use the correct email WITHOUT

NOSPAM
Avatar billede tolveren Nybegynder
15. september 2005 - 12:00 #29
Your e amil: eksperten@NOSPAMsanthell.dk  ? I use outlook 6.0 there is not a nospam button. I send it last night 17:58
Avatar billede terry Ekspert
15. september 2005 - 13:47 #30
you have to remove NOSPAM from the email address!
Avatar billede tolveren Nybegynder
15. september 2005 - 16:19 #31
Nu kører call. Men fejltekst lyder: "Objektet indeholder ikke automationsobjektet "Journal". Jeg forsøger at sende basen i aften.
Avatar billede terry Ekspert
16. september 2005 - 09:08 #32
its hard to help if I cant see the dB!
Compress the dB (Tools-Database Utilities-Compact Repair menu)
then ZIP it.

You can also try sending it to
sandy@NOSPAMstofanet.dk

again you MUST remove NOSPAM
Avatar billede tolveren Nybegynder
16. september 2005 - 10:08 #33
I send it to info@santhell.dk
Avatar billede terry Ekspert
16. september 2005 - 12:11 #34
I have received no mail at the info... account!

The reason why I place NOSPAM in my email address when making it public is to limit the SPAM I receive!!!! So NOSPAM must be removed from the email address.


Do you have an email address I can send a mail to?
Avatar billede tolveren Nybegynder
16. september 2005 - 12:25 #35
Yes I have: susannehougaard@mail.dk
But now i mdb works. I did not have my tbl in the form. I just had a button without no data in the form. Is it possible to get the funktion to execute without the data.
Can I write to the button in code that it has to tke the data from the tbl field.
Avatar billede terry Ekspert
16. september 2005 - 12:56 #36
I do understand danish (almost 100%) so you  do not need to answer in English.

The function will work as long as you give it some data! But as I dont know exactly how you want to use it then its hard to give an example.


Something else you should concider:

You should maybe have another table where you write your information on each Journal. Having to find the information in one memo field isnt the best method.
Avatar billede terry Ekspert
19. september 2005 - 11:23 #37
are we getting there tolveren?
Avatar billede tolveren Nybegynder
19. september 2005 - 11:36 #38
Ja vi er der faktisk og det virker. Kan du ændre koden så den samtidig finder opretteren. F eks "xxx xxcdd tekst "Journalnr 345666" cxcmdk tekst dllf "Oprettet af Peter Nielsen" sdllæssææ tekst dææføøøas teskstjkll "Journalnr 888889" llæas dlls "Oprettet af Niels Nielsen"
Avatar billede terry Ekspert
19. september 2005 - 13:23 #39
when searching for Journalnr then we know that the number is six charactres. The problem in search for "Opretteren" is we dont know how long the name is, or do we?

I suggest that you consider normalizing your database, this will make things MUCH easier.
Avatar billede tolveren Nybegynder
19. september 2005 - 13:28 #40
The name "Opretteren" is max 30 tegn
Avatar billede terry Ekspert
19. september 2005 - 13:47 #41
what if it less than 30 characters? The code can not guess when the name ends so it needs som eway of knowing.
Avatar billede tolveren Nybegynder
19. september 2005 - 13:51 #42
Det er OK at Opretteren indeholder navnet + noget ekstra tekst. Må også gerne indeholde evt blanke tegn.
Avatar billede terry Ekspert
19. september 2005 - 14:15 #43
Public Function opretteren(notatfeltet)
Dim O As Variant
Dim i As Integer
    If Len(notatfeltet) > 0 Then
       
        O = Split(notatfeltet, "Oprettet af")
        If UBound(O) > 0 Then
       
        For i = 1 To UBound(O)
            opretteren = Mid(O(i), 2, 30)
           
          Debug.Print opretteren
                     
           
        Next i
        Else
            opretteren = "Opretteren findes ikke"
        End If
       
End If
End Function
Avatar billede tolveren Nybegynder
19. september 2005 - 15:00 #44
Ja, Ja Terry. Men det skulle jo bygges sammen med det der Journalnr. Koden skal gennemløbe notatfeltet og finde både Journalnr og Opretter i samme gennemløb. Kan man det ? og hvordan ser den sammebyggede kode ud ? Journalnr skulle lægges i den ny tabel i felt1 og Opretteren i samme tabel men bare i felt2.
Avatar billede terry Ekspert
19. september 2005 - 15:03 #45
I had a feeling that that was what you would want :o)
Avatar billede terry Ekspert
19. september 2005 - 15:09 #46
This is NOT tested. It assumes that for each journal there is a "opretter", if not then it will fail!

Public Function Journal(notatfeltet)
Dim VARa As String
Dim O As Variant
Dim P As Variant
Dim i As Integer

    If Len(notatfeltet) > 0 Then
        O = Split(notatfeltet, "Journalnr")
    P = Split(notatfeltet, "Oprettet af")

        If UBound(O) > 0 Then
       
        'DoCmd.SetWarnings False
       
        For i = 1 To UBound(O)
            VARa = Left(O(i), 7)
            Journal = Right(VARa, 6)
        opretteren = Mid(P(i), 2, 30)

           
          DoCmd.RunSQL "INSERT into [Data_udtræk] (Data, fld2) VALUES ('" & Journal & "', '" & opretteren  & ")"
                     
           
        Next i
        Else
            Journal = "Journalnr findes ikke"
        End If
       
        'DoCmd.SetWarnings True
End If
End Function
Avatar billede tolveren Nybegynder
19. september 2005 - 15:24 #47
Ser ellers godt ud, men opretteren(variablen er ikke defineret ? eller subscript out of range ?)
Avatar billede terry Ekspert
19. september 2005 - 15:34 #48
just add
Dim opretteren as String to the variables at the top of the function and try again
Avatar billede tolveren Nybegynder
19. september 2005 - 16:12 #49
Nu kun subscript out of range. Nå slut for i dag og tak indtil videre
Avatar billede terry Ekspert
19. september 2005 - 16:53 #50
script out of range indicates that there is a differnt number of elements in the arrays

try adding this

msgbox Ubound(O) & " - " UBound(P) before this line

If UBound(O) > 0 Then

what do you see?
Avatar billede tolveren Nybegynder
20. september 2005 - 13:37 #51
Jeg får compile error:

Public Function Journal2(notatfelt)
    Dim VARa As String
    Dim VARb As String
    Dim O As Variant
    Dim p As Variant
    Dim i As Integer
    Dim opretteren As String
    Dim Journal As String
   
    If Len(notatfelt) > 0 Then
        O = Split(notatfelt, "Journalnr")
        p = Split(notatfelt, "Oprettet af")

msgbox Ubound(O) & " - " UBound(P)
        If UBound(O) > 0 Then
       
        'DoCmd.SetWarnings False
       
        For i = 1 To UBound(O)
            VARa = left(O(i), 7)
            Journal = Right(VARa, 6)
        opretteren = Mid(p(i), 2, 30)

        DoCmd.RunSQL "INSERT into [Data_udtræk] (Data,Opretter) VALUES ('" & Journal & "','" & opretteren & "')"
                     
           
        Next i
        Else
            Journal = "Journalnr findes ikke"
        End If
               
        'DoCmd.SetWarnings True
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
End If

End Function
Avatar billede terry Ekspert
20. september 2005 - 15:09 #52
which line of code?
Avatar billede tolveren Nybegynder
20. september 2005 - 15:10 #53
På den nye: msgbox Ubound(O) & " - " UBound(P)
Avatar billede terry Ekspert
20. september 2005 - 16:18 #54
sorry

msgbox Ubound(O) & " - " & UBound(P)
Avatar billede tolveren Nybegynder
21. september 2005 - 09:49 #55
Den skriver 9-1 og bagefter subscript out of range.
Avatar billede tolveren Nybegynder
21. september 2005 - 09:52 #56
Min tekst indeholder "Journalnr" 9 gange og "Oprettet af" 1 gang. Koden fanger det første Journalnr og den ene Opretter.
Avatar billede terry Ekspert
21. september 2005 - 10:25 #57
theres your problem!

I think the original question is answered now, but I can take a look at this if you can send me your database. If I cant see the data and the code then its very hard to find out what is wrong.

You have my email. If your mails do notget through then I suspect that your mail server is stopping it.
Avatar billede tolveren Nybegynder
21. september 2005 - 12:32 #58
Jeg prøver i aften
Avatar billede terry Ekspert
22. september 2005 - 10:52 #59
did you send anything to me?
Avatar billede tolveren Nybegynder
23. september 2005 - 10:34 #60
Har været lidt hængt op og er det stadig.
Avatar billede terry Ekspert
29. september 2005 - 19:54 #61
Hi Susanne
Do you think we could close this question now? The original question has been answered.
If you need further help when you have more time then you can just place a comment here.

mvh
Terry
Avatar billede tolveren Nybegynder
30. september 2005 - 09:49 #62
Jeg har 2 gange forsøgt at give dig point. Jeg prøver nu at flytte prikken ned på svar og klikke på accepter. Tak for hjælpen.
Avatar billede tolveren Nybegynder
30. september 2005 - 09:51 #63
Lukker og slukker. Du har fået point den 13 sept kan jeg se.
Avatar billede terry Ekspert
30. september 2005 - 10:50 #64
thanks
There is a problem when trying to give points, it is necessary to choose the name in the laist and then accept.
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