26. oktober 2004 - 21:01Der er
15 kommentarer og 2 løsninger
Opdateringsforespørgsel
Hej eksperter I en tabel "tblmidifiler" har jeg et felt "Midifil" feltet er af typen Notat. Værdien i dette felt henviser til en fil på c:\ feks. C:\Midififiler\data\test.mid.
Hvis jeg nu vil ændre drevbogstavet C til feks. D, og kun det dvs. at hele strengen efter drevbogstavet ikke skal ændres, det skulle så gerne se sådan ud D:\Midifiler\data\test.mid
Jeg havede tænkt mig at det måske kunne køre via en alm. opdateringsforespørgsel, hvor brugen feks. promtes for angivelse af nyt drevbogstav i en inputbox, når brugeren så har tastet det nye drevbogstav, og klikker Ok, skal opdateringsforespørgsel køre og opdatere til det nye drevbogstav brugeren har tastet.
Det er ikke noget must at det skal køre via en opdateringsforespørgsel, men tænkte at det måske var det nemmeste,Er dette muligt.
Hej har testet og foreslaget fra Thomas virker perfekt, hvis man nu ville gøre det lidt mere elegant, så jeg bliver promtet med en inputbox via vba i stedet for parameterbox direkte fra opdateringsforespørgsel ville det være endnu mere perfekt,kan man det :)
sub skiftDrev() dim drev as string drev = inputbox("indtast drev") Select Case Len(Drev) case 1 docmd.runsql "UPDATE tbl SET felt =" & drev & "& Mid([felt],2);" case 0 case else msgbox "Du må kun angive ét bogstav!", vbcritical, "fejl i drevbogstav!" end select end sub
Ja, det sker ofte, Thomas havede jo det korrekte svar så points går til ham, håber det ok, jeg vil også gerne give dig point hvis jeg kunne se en testdb med din tabelstruktur evt. i et nyt spørgsmål.
Dim drev As String drev = InputBox("Angiv bogstav på det nye drevbogstav i feltet midifil!", "Angiv nyt drevbogstav") Select Case Len(drev) Case 1 DoCmd.RunSQL "UPDATE tblmidifiler SET Midifil =" & drev & "& Mid([Midifil],2);" Case 0 Case Else MsgBox "Du må kun angive ét bogstav!", vbCritical, "Fejl i drevbogstav!" End Select
Bliver jeg efter at have indtastet det nye drevbogstav i inputboxen prometet for det en gang til "Indtast prameterværdi" hvis jeg indtaster det en gang til her køre opdateringen fint nok, men det ville være fint hvis den sidste promt kunne undgåes.
Hvis der skal oprettes et nyt spørgsmål er det ok med mig :)
nåå, men det var jo fordi, jeg aldrig fik lagt pling'erne ind i koden :o(
Prøv denne:
Dim drev As String drev = InputBox("Angiv bogstav på det nye drevbogstav i feltet midifil!", "Angiv nyt drevbogstav") Select Case Len(drev) Case 1 docmd.Setwarnings False DoCmd.RunSQL "UPDATE tblmidifiler SET Midifil ='" & drev & "' & Mid([Midifil],2);" docmd.Setwarnings true Case 0 Case Else MsgBox "Du må kun angive ét bogstav!", vbCritical, "Fejl i drevbogstav!" End Select
>Thomas, bingo så var den der endnu engang tak for hjælpen.
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.