13. juni 2003 - 09:55Der er
16 kommentarer og 1 løsning
adskille en text.. hurtigt svar ønskes
Jeg har et text felt [felt1], der indeholder en text. Inde i teksten er der angivet nogle @@ som skal simulere et linieskift.: eks: bilen er rød@@og har 4 døre@@samt en stor bagklap
det jeg øsnker er at kunne finde alt text der står foran @@, mellem @@-@@, samt efter @@.
sText = "bilen er rød@@og har 4 døre@@samt en stor bagklap" aText = Split(sText, "@@") For I = 0 To UBound(aText) MsgBox "Del " & (I + 1) & ": " & aText(I) Next
Skulle meget gerne dele det op i et array, gennemgå array'et og fortælle hvad der står i hver del
Hvis det kun er den aktuelle post på en formular, vi snakker om, så er det ret simpelt. Placer de 4 felter på formularen og lav en knap med denne kode på:
Okay, så er det jo lidt mere besværligt. Men hvis du ville give lidt flere point, så har du den her:
Public Function SplitFelt() Dim aText Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set rs = New ADODB.Recordset Set cn = CurrentProject.Connection rs.Open "Tabel1", cn, adOpenKeyset, adLockOptimistic do aText = Split(rs!Felt1, "@@") rs!Felt2 = aText(0) rs!Felt3 = aText(1) rs!Felt4 = aText(2) rs.update rs.movenext loop until rs.eof rs.close Set rs = Nothing cn.Close Set cn = Nothing End Function
Placer koden i et modul og tryk F5 mens du har markøren placeret i funktionen.
Du mangler en reference til Microsoft ActiveX Data 2.x Object Library fordi det er en Access 97-database (sommåske er konvereteret)
Prøv denne istedet eller tilføj referencen: Public Function SplitFelt() Dim aText Dim rs As DAO.Recordset Dim db as database Set db = Currentdb set rs = db.Openrecordset("Tabel1", dbopendynaset) do aText = Split(rs!Felt1, "@@") rs.edit rs!Felt2 = aText(0) rs!Felt3 = aText(1) rs!Felt4 = aText(2) rs.update rs.movenext loop until rs.eof rs.close Set rs = Nothing End Function
Hvis jeg bruger f8 til at afvikle med kører den fint linerne : Dim aText Dim rs As DAO.Recordset Dim db As Database Set db = CurrentDb Set rs = db.OpenRecordset("split_text", dbOpenDynaset) Do aText = Split(rs!varetext, "@@")
som den looper imellem. da der er mange trykker jeg f5 for at afvikle og så kommer den efter ca 3 sekunder.
jeg har begge dele....men jeg kører den på 2K, idt jeg ikke kan se at access 97 understøtter SPLIT funktionen.
Kunne du sende den test db der virker fint hos dig, da jeg ved kørsel af denne på min egen maskine da normalt får at vide hvilke objekter jeg mangler at installere.
XMLerror@solar.dk
Point siger du selv lige hvor meget der skal oveni.
Er ved at rydde op i mine "gamle" spørgsmål og TJ ekseplet virker nu af uforklarlige årsager.
Takker
Niels
Synes godt om
Ny brugerNybegynder
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.