Avatar billede BIRGER Seniormester
20. januar 2004 - 21:57 Der 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
       
    If Not objRs.EOF Then
       
        Range("A1") = objRs("Kundenr")
        Range("a2") = objRs("Navn1")
        Range("a3") = objRs("Adresse")
        Range("a4") = objRs("postby")
objRs.Close
    objConn.Close
 
Else
    MsgBox "tlfnr. findes ikke"
      End


End If
 
End Sub
Avatar billede martin_moth Mester
20. januar 2004 - 23:56 #1
hvis der er flere end en post i objRs viser du brugeren valgmulighederne, og overføre det valgte. Hvordan skal brugeren kunne vælge?
Avatar billede martin_moth Mester
20. januar 2004 - 23:57 #2
60p =svær. Er 200 måske i overkanten?
Avatar billede BIRGER Seniormester
21. januar 2004 - 07:41 #3
brugeren skal kunne klikke på den af posterne, der skal overføres
Avatar billede martin_moth Mester
21. januar 2004 - 08:28 #4
Fint - men hvordan skal de forskellige poster vises?
Avatar billede BIRGER Seniormester
21. januar 2004 - 10:07 #5
som de bilver trukket over...altså kundenr-navn1-Adresse-postby...
Avatar billede terry Ekspert
21. januar 2004 - 17:37 #6
isnt this the same question http://www.eksperten.dk/spm/453370?
You should close one of them!
Avatar billede BIRGER Seniormester
21. januar 2004 - 21:35 #7
Jeg har prøvet at sætte denne her kode ind...men jeg er ikke sikker på at den opfangner hvor der er flere konti med samme tlfnr

For i = 0 To objRs.recordcount > 1
    MsgBox " flere konti med sammme tlfnr "
    Next i
Avatar billede helmet Nybegynder
21. januar 2004 - 21:47 #8
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.

objRS.CursorType = adOpenStatic

Som det virker nu vil din recordcount stå som -1.
Avatar billede BIRGER Seniormester
21. januar 2004 - 22:03 #9
jeg tror at jeg kører lidt rundt i det....nu meldingen ..flere konti med samme med flere tlfnr...selv om jeg tastet et tlf..der er unikt?
Avatar billede helmet Nybegynder
21. januar 2004 - 22:08 #10
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
Avatar billede BIRGER Seniormester
21. januar 2004 - 22:17 #11
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?
Avatar billede helmet Nybegynder
21. januar 2004 - 22:32 #12
Er kunde nummer unikt??
Avatar billede BIRGER Seniormester
21. januar 2004 - 22:36 #13
Ja kundenr vil altid være unikt..
Avatar billede helmet Nybegynder
21. januar 2004 - 22:52 #14
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

-------------------------------------------------------------------------

Koden lige efter du har åbnet dit recordset har jeg ikke ændret meget i.

if objRS.Recordcount > 1 then
  Form2.Init objRS
end if

Range("A1") = objRs("Kundenr")
Range("a2") = objRs("Navn1")
Range("a3") = objRs("Adresse")
Range("a4") = objRs("postby")

objRS.Filter = ""
Avatar billede BIRGER Seniormester
21. januar 2004 - 23:13 #15
skal de som to selvstændige programmer..den første skal den ikke have et navn?
Avatar billede helmet Nybegynder
21. januar 2004 - 23:17 #16
Okay du bruger nok VBA, ved faktisk ikke helt om man kan lave nye vinduer i det/eller hvordan man laver dem.

Det hele skulle jo gerne køre i samme program, så der bare popper en boks op hvor brugeren kunne vælge den rigtige post.
Avatar billede BIRGER Seniormester
21. januar 2004 - 23:24 #17
jeg prøver mig lidt frem, du skal i hvertfald have tak..jeg er nået meget længere
Avatar billede helmet Nybegynder
21. januar 2004 - 23:33 #18
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.
Avatar billede BIRGER Seniormester
14. februar 2004 - 23:29 #19
nu har jeg oprettet en form2 og en lstmulige.. men det er ligesom prog. stopper ved
form2.init objrs....med en compile error?
Avatar billede martin_moth Mester
15. februar 2004 - 15:36 #20
nå...

Du skal nok være lidt mere konkret for at få løst dit problem.
Avatar billede BIRGER Seniormester
15. februar 2004 - 17:36 #21
koden :if objRS.Recordcount > 1 then
      Form2.Init objRS
      end if
det ligesom om at den ikke ved kendes ved den . init....
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester