25. august 2001 - 21:08Der er
7 kommentarer og 1 løsning
Hvordan foretage man en kørsel, som ændre indholdet i en tabel??
Jeg har en access database, hvor jeg har behov for at ændre indholdet, såfremt en opstillet betingelse er opfyldt.
I en post findes et felt, som f.eks. har værdien \"2\". Jeg ønsker derfor at foretage en kørsel, hvor indholdet i feltet skal ændres til \"3\", hvis indholdet altså har værdien \"2\".
Hvordan gøres dette?? - skær det gerne ud i pap.....
Følgende funktion finder en angivet streng i et modul og erstatter den linje, der indeholder denne streng, med en ny angivet linje.
Function SøgOgErstat(strModuleName As String, strSearchText As String, _ strNewText As String) As Boolean Dim mdl As Module Dim lngSLine As Long, lngSCol As Long Dim lngELine As Long, lngECol As Long Dim strLine As String, strNewLine As String Dim intChr As Integer, intBefore As Integer, intAfter As Integer Dim strLeft As String, strRight As String
\' Åben modulet. DoCmd.OpenModule strModuleName \' Returner referencen til modulobjektet. Set mdl = Modules(strModuleName)
\' Søg efter strengen. If mdl.Find(strSearchText, lngSLine, lngSCol, lngELine, lngECol) Then \' Gem den tekstlinje, der indeholder strengen. strLine = mdl.Lines(lngSLine, Abs(lngELine - lngSLine) + 1) \' Bestem linjelængden. intChr = Len(strLine) \' Bestem det antal tegn, der skal skrives forud for søgeteksten. intBefore = lngSCol - 1 \' Bestem det antal tegn, der skal skrives efter søgeteksten. intAfter = intChr - CInt(lngECol) - 1
\' Gem tegnene til venstre for søgeteksten.
strLeft = Left$(strLine, intBefore) \' Gem tegnene til højre for søgeteksten. strRight = Right$(strLine, intAfter) \' Konstruer en streng med en erstatningstekst. strNewLine = strLeft & strNewText & strRight \' Erstat den oprindelige linje. mdl.ReplaceLine lngSLine, strNewLine SøgOgErstat = True Else MsgBox \"Teksten blev ikke fundet.\" SøgOgErstat = False End If
Exit_SøgOgErstat: Exit Function
Error_SøgOgErstat:
MsgBox Err & \": \" & Err.Description SøgOgErstat = False Resume Exit_SøgOgErstat End Function
martens svar er korrekt og bygger på at lave en opdateringsforespørgsel, men du kan undgå at lave en forespørgsel ved i VBA at benytte flg. kommando If FELTNAVN = 3 Then DoCmd.RunSQL \"UPDATE TABELNAVN SET TABELNAVN.FELTNAVN = 2;\" Else: Exit Sub End If
Engang imellem er det uhyggeligt nemt, men jeg kan skam også skyde gråspurve med kanoner....
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.