Avatar billede BIRGER Seniormester
18. januar 2004 - 15:01 Der er 11 kommentarer og
2 løsninger

opfangning af dobbelt poster

Vi har et program der overfører data til word fra en accestabel..dette gøres via indtasning af tlfnr..men der kan godt være flere konti med samme tlfnr...kan det opfanges og kan brugeren få mulighed for at vælge mellem de konti der har samme tlfnr.
jeg vedlægger program!
Sub kundetlf()
Tlf = 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:\kunder.MDb"
    objConn.Open strConnString
   
    strSQL = "SELECT Kundenr,Navn, Adresse, postby FROM emner WHERE tlf = " & Tlf
    objRs.Open strSQL, objConn
   
         
    If Not objRs.EOF Then
         
        Selection.TypeText Text:="Kundenr: " & objRs("Kundenr") & vbCrLf
        Selection.TypeText Text:="" & objRs("Navn") & vbCrLf
        Selection.TypeText Text:="" & objRs("Adresse") & vbCrLf
        Selection.TypeText Text:="" & objRs("postby") & vbCrLf
 
objRs.Close
    objConn.Close
  End If

End Sub
Avatar billede somaliomar Praktikant
18. januar 2004 - 15:38 #1
Du kunne jo først hente dataene fra databasen og putte dem i et array. Derefter kan du se om arrayet indeholder mere end én konto. Hvis arrayet indeholder mere end en konto kan du vise brugeren alle konti så brugeren kan vælge hvilken konto der skal indsættes i Word-dokumentet.
Avatar billede BIRGER Seniormester
18. januar 2004 - 15:44 #2
hvordan lægges dataene i arrayes?
Avatar billede somaliomar Praktikant
18. januar 2004 - 15:53 #3
Måske noget ala det her:

    If Not objRs.EOF Then
       
        Do While Not rs.EOF
            arrTelNumbers(intCounter) = "Kundenr: " & objRs("Kundenr") & vbCrLf & _
                objRs("Navn") & vbCrLf & _
                objRs("Adresse") & vbCrLf & _
                objRs("postby") & vbCrLf
           
            intCounter = intCounter + 1
        Loop
       
        objRs.Close
        objConn.Close
       
    End If
Avatar billede somaliomar Praktikant
18. januar 2004 - 16:02 #4
Hvad med der her:

Sub kundetlf()
    Tlf = InputBox("indtast tlfnr")

    Dim objConn As ADODB.Connection
    Dim objRs As ADODB.Recordset
    Dim strConnString As String
    Dim strSQL As String
   
    Dim intCounter As Integer
    Dim arrTelNumbers() As String
    Dim strMsg As String
    Dim i As Integer
   
 
    Set objConn = New ADODB.Connection
    Set objRs = New ADODB.Recordset
 
    strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\kunder.MDb"
    objConn.Open strConnString
 
    strSQL = "SELECT Kundenr,Navn, Adresse, postby FROM emner WHERE tlf = " & Tlf
    objRs.Open strSQL, objConn
 
    intCounter = 0
    If Not objRs.EOF Then
       
        Do While Not rs.EOF
            arrTelNumbers(intCounter) = "Kundenr: " & objRs("Kundenr") & vbCrLf & _
                objRs("Navn") & vbCrLf & _
                objRs("Adresse") & vbCrLf & _
                objRs("postby") & vbCrLf
           
            intCounter = intCounter + 1
        Loop
       
        objRs.Close
        objConn.Close
    End If
   
    If intCounter > 1 Then
        strMsg = "Der er i alt fundet " & intCounter & ":"
       
        For i = LBound(arrTelNumbers) To UBound(arrTelNumbers)
            strMsg = strMsg & i & " " & arrTelNumbers(i)
        Loop
       
        strMsg = strMsg & vbCrLf & "Vælg et nummer"
        out = InputBox(strMsg)
       
        Selection.TypeText Text:=arrTelNumbers(out)
    Else
        Selection.TypeText Text:=arrTelNumbers(0)
    End If
End Sub
Avatar billede terry Ekspert
18. januar 2004 - 17:16 #5
why put the data into an array when you already have it in a recordset?

If rs.recordcount > 1 Then 'More than one with same telephone number

  'You could write the data to a listbox where it is possible to see and choose

End if
Avatar billede BIRGER Seniormester
18. januar 2004 - 17:24 #6
hvordan skal jeg lægge detn ind i prog...jeg mener syntaksen?
Avatar billede somaliomar Praktikant
18. januar 2004 - 17:27 #7
Erstat koden med ovenstående kode.
Avatar billede BIRGER Seniormester
18. januar 2004 - 17:33 #8
hvordan virker den listbox?
Avatar billede somaliomar Praktikant
18. januar 2004 - 17:39 #9
Hvilken listbox?
Avatar billede BIRGER Seniormester
18. januar 2004 - 17:48 #10
jeg får en fejlmeld..på loop whitout do i dit prog
Avatar billede somaliomar Praktikant
18. januar 2004 - 17:59 #11
Prøv at erstatte
        For i = LBound(arrTelNumbers) To UBound(arrTelNumbers)
            strMsg = strMsg & i & " " & arrTelNumbers(i)
        Loop

med

        For i = LBound(arrTelNumbers) To UBound(arrTelNumbers)
            strMsg = strMsg & i & " " & arrTelNumbers(i)
        Next
Avatar billede BIRGER Seniormester
18. januar 2004 - 18:05 #12
den siger det samme?
Avatar billede BIRGER Seniormester
21. januar 2004 - 20:59 #13
jeg tror at den rigtige måde er med recordcount,  så jeg prøver, men det kniber lidt med syntaksen.
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