20. januar 2004 - 21:57Der er
20 kommentarer og 1 løsning
Dobbeltposter i data ovf fra acces til exel. hjælp!!
Jeg er gået helt i sort...jeg har et program der ovf data fra acces til exel...Der tastes et tlfnr som søgekriterie og posten som tlfnr. peger på overføres til exel..mit problem er så at der er flere poster der har samme tlfnr..dette vil jeg opfange, og give brugeren mulighed for at vælge hvilken post der skal af posterne med det samme tlfnr der skal overføres. Kan det evt. gøres med noget recordcount evt? Jeg prøver at vedlægge programmet. Sub Kunde() tlfnr = InputBox("indtast tlfnr") Dim objConn As ADODB.Connection Dim objRs As ADODB.Recordset Dim strConnString As String Dim strSQL As String
Set objConn = New ADODB.Connection Set objRs = New ADODB.Recordset strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\dokumenter\kartoteker.MDb" objConn.Open strConnString
strSQL = "SELECT Kundenr,Navn1, Adresse, postby FROM kundekartotek WHERE tlfnr = " & tlfnr objRs.Open strSQL, objConn
Det skyldes sikkert at du åbner recordsættet med default cursor, så bliver recordcount ikke opdatere før du har flytte dig frem til næste post. Hvis du indsætter følgende inden objRS.Open vil recordcount blive opdatere med det lige efter indlæsning af data.
Kan heller ikke forstå den kan finde ud af den for løkke du har lavet. Hvis nu vi siger det tlfnr er unikt, så vil recordcount være 1, så vil den vel også kører igennem loopet 2 gange.
Du bør vel lavet noget lignende med if objRS.Recordcount > 1 then vis posterne der skal vælges imellem. end if
du har ret...den virker med den >1..det er jo så fordi at dit første forslag nulstiller counteren... har du noget forslag til det med at vise de poster der har samme tlfnr og kunne vælge imellem dem?
Ja jeg har et foreslag, synes selv jeg har lidt svært ved at vælge noget ud fra flere elementer i et recordset.
Jeg har lavet en ny form som viser de mulige poster. I eksemplet hedder den bare form2. På den er den er knap(cmdOK) og enlistboks(lstMulige).
Koden på den nye for ser således ud.
Option Explicit
Dim objRS As ADODB.Recordset
Public Sub Init(adoRS As ADODB.Recordset) Set objRS = adoRS With objRS While Not .EOF lstMulige.AddItem !Navn1 & " " & !Adresse & " " & !Postnr lstMulige.ItemData(lstMulige.NewIndex) = !Kundenr .MoveNext Wend End With
Me.Show vbModal Set adoRS = objRS
End Sub
Private Sub cmdOK_Click() objRS.Filter = "Kundenr = " & lstMulige.ItemData(lstMulige.ListIndex) Unload Me End Sub
Har lige været inde og lure lidt i excel, når du står i vba projektet, skal du højreklikke, vælge insert og userform, i den skal du så kopiere den kode der ligger og den stiplede streg.
koden :if objRS.Recordcount > 1 then Form2.Init objRS end if det ligesom om at den ikke ved kendes ved den . init....
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.