01. april 2004 - 22:00Der er
16 kommentarer og 1 løsning
Desperat hjælp til spørgsmål 3
Hej prøver lige igen Jeg skal bruge en kode der kan finde en værdi i en database vha vba. Derefter skal den indsætte et regnr svarende til den sidste værdi + 1 i den pågældende kategori. Spørgsmålet er en del af et opgavesæt fra syddansk universitet. Det drejer sig om spørgsmål 3: http://www.sam.sdu.dk/undervis/85435.F04/obli1_2004/Obligatorisk_opgave_2004.pdf
Jeg er ikke helt med. Har efterhånde siddet mange timer foran pc'en så jeg tænker ikke så klart mere. Gider du evt uddybe det lidt f.eks. med en konkret kode??
Synes godt om
Slettet bruger
01. april 2004 - 22:21#3
Du må have noget kode i forvejen ikk? Så skal du lave en select ned i databasen, dertil kan du bruge SELECT max(regnr) from tabel Den får du så tilbage igen og lægger i en variabel, så laver du en INSERT INTO tabel (regnr,felt2, felt3 o.s.v.) VALUES (NytRegnr, værdi2, værdi3 o.s.v.) så har du din nye post i databasen.
Forresten der er flere forskellige under kategorier så hvis den nye indtastning til f.eks. den første underkategori skal den tage dette regnr + 1 og hvis den tilhører en anden skal den tage en anden regnr +1 osv hvis du forstår??
Martin: Har som skrevet siddet mange timer med denne opgave der ligger langt over mit niveau :-( så gider du ikke lige smide et link til hvor du har vist det, så er der point selvfølgelig.
Det er vist ikke helt det samme spørgsmål vi er i. Jeg skal bruge noget til opgave 3. Dette er til spørgsmål 4
Synes godt om
Slettet bruger
01. april 2004 - 22:43#12
Øhh, martin skriver følgende som er en søgning i arket og det er vel det du skal.
Sub MinMacro() Dim i As Long Dim strSøgeord As String
Sheets("Sheet1").Select '<- Skift arknavnet ud med det der passer strSøgeord = InputBox("Hvad vil du søge efter", "Indtast søgeord") strSøgeod = LCase(strSøgeord)
For i = 1 To 61000 If LTrim(LCase(ActiveSheet.Cells(i, 7).Value)) = LTrim(LCase(strSøgeord)) Then MsgBox "Søgeord fundet i række " & i '<--Gem række nr 'i' der hvor den skal gemmes, f.eks. i et andet ark --> End If Next i
Ja kan godt se at det omhandler det samme. Lukker bare spørgsmålet nu er for træt til at kunne tænke klart. Hvis I vil have nogle smid lige et svar og angiv hvor mange point i vil have hver især.
Og hvis du vil gøre koden mere effektiv, tjekker du først hvor mange rækker det er nødvendigt at undersøge. Det er jo spild af ressourcer at søge 61000 rækker igennem...
Det har jeg også vist i spørgsmålet, du har fået et link til
Sub MinMacro() Dim i As Long Dim strSøgeord As String Dim ws As Worksheet Dim lLastRow As Long
'Finder sidste række Set ws = Sheets("Sheet1") '<-- Ret arknavnet lLastRow = ws.Range("G" & Rows.Count).End(xlUp).Row Sheets("Sheet1").Select '<- Skift arknavnet ud med det der passer
'Henter søgeord strSøgeord = InputBox("Hvad vil du søge efter", "Indtast søgeord") strSøgeod = LCase(strSøgeord)
'Søger efter søgeord indtil sidste række nås For i = 1 To lLastrow If LTrim(LCase(ActiveSheet.Cells(i, 7).Value)) = LTrim(LCase(strSøgeord)) Then MsgBox "Søgeord fundet i række " & i '<-Gem række nr 'i' der hvor den skal gemmes, f.eks. i et andet ark -> End If Next i
MsgBox "Søgning slut" End Sub
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.