Avatar billede BIRGER Seniormester
27. juni 2004 - 21:47 Der er 4 kommentarer og
1 løsning

Word VBA besked om ikke fundet post!!

jeg har et et program som jeg har haft store problemer med, så nu prøver jeg at tage fat i udgangspunket. Programmet ovf data fra access til word via indtastning af tlfnr... Det er lavet så at hvis der er 2 eller flere ens tlfnr bliver posterne vist via en listbox og hvis der kun er et tlfnr. bliver posten ovf. direkte. Det jeg ikke kan finde ud af, er hvordan jeg kan indbygge i koden at fange hvis tlfnr ikke findes i basen...og give en besked på dette via en msgbox.

Sub kundetlf()

tlfnr = InputBox("indtast telefonnr")
If tlfnr = "" Then

Application.ScreenUpdating = False
Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=20, Name:=""
Selection.MoveRight Unit:=wdCell
ActiveWindow.ActivePane.VerticalPercentScrolled = 0
     
   
Else

    Dim objConn As ADODB.Connection
    Dim objRs As ADODB.Recordset
    Dim strConnString As String
    Dim strSQL As String
   
    On Error Resume Next
    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,navn2, Adresse, postby FROM kundekartotek WHERE tlfnr = " & tlfnr
    objRs.CursorType = adOpenStatic
    objRs.Open strSQL, objConn
 
  If objRs.RecordCount > 1 Then
 
  Application.ScreenUpdating = False
A = objRs
UserForm1.ListBox1.ColumnCount = 5
UserForm1.ListBox1.ColumnCount = 5
UserForm1.ListBox1.Clear
UserForm1.ListBox1.ColumnWidths = "35;140;140;140"
 
          If Not objRs.EOF Then
          i = 0
          Do While Not objRs.EOF
   
    With objRs
    UserForm1.ListBox1.AddItem objRs("Kundenr")
    UserForm1.ListBox1.List(i, 1) = objRs("Navn1")
    UserForm1.ListBox1.List(i, 2) = objRs("Navn2")
    UserForm1.ListBox1.List(i, 3) = objRs("adresse")
    UserForm1.ListBox1.List(i, 4) = objRs("postby")
       
        i = i + 1
        .MoveNext
      End With
    Loop
   
    UserForm1.Show
    objRs.Close
    objConn.Close
 
End If
        Else

        Selection.TypeText Text:="Kundenr: " & objRs("Kundenr") & vbCrLf
        Selection.TypeText Text:="" & objRs("Navn1") & vbCrLf
        Selection.TypeText Text:="" & objRs("Adresse") & vbCrLf
        Selection.TypeText Text:="" & objRs("postby") & vbCrLf
        objRs.Close
        objConn.Close

End If
End If
End Sub
Avatar billede kabbak Professor
27. juni 2004 - 22:41 #1
If objRs.RecordCount = 0 Then
msgbox " ikke fundet"
exit sub
end if
Avatar billede kabbak Professor
27. juni 2004 - 23:03 #2
Sub kundetlf()
tlfnr = InputBox("indtast telefonnr")
If tlfnr = "" Then

Application.ScreenUpdating = False
Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=20, Name:=""
Selection.MoveRight Unit:=wdCell
ActiveWindow.ActivePane.VerticalPercentScrolled = 0
     
   
Else

    Dim objConn As ADODB.Connection
    Dim objRs As ADODB.Recordset
    Dim strConnString As String
    Dim strSQL As String
   
    'On Error Resume Next
    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,navn2, Adresse, postby FROM kundekartotek WHERE tlfnr = " & tlfnr
    objRs.CursorType = adOpenStatic
    objRs.Open strSQL, objConn
  '>>>> 
  If objRs.RecordCount = 0 Then
MsgBox " ikke fundet"
Exit Sub
End If
'<<<<<<<
  If objRs.RecordCount > 1 Then
 
  Application.ScreenUpdating = False
A = objRs
UserForm1.ListBox1.ColumnCount = 5
UserForm1.ListBox1.ColumnCount = 5
UserForm1.ListBox1.Clear
UserForm1.ListBox1.ColumnWidths = "35;140;140;140"
 
          If Not objRs.EOF Then
          i = 0
          Do While Not objRs.EOF
   
    With objRs
    UserForm1.ListBox1.AddItem objRs("Kundenr")
    UserForm1.ListBox1.List(i, 1) = objRs("Navn1")
    UserForm1.ListBox1.List(i, 2) = objRs("Navn2")
    UserForm1.ListBox1.List(i, 3) = objRs("adresse")
    UserForm1.ListBox1.List(i, 4) = objRs("postby")
       
        i = i + 1
        .MoveNext
      End With
    Loop
   
    UserForm1.Show
    objRs.Close
    objConn.Close
 
End If
        Else

        Selection.TypeText Text:="Kundenr: " & objRs("Kundenr") & vbCrLf
        Selection.TypeText Text:="" & objRs("Navn1") & vbCrLf
        Selection.TypeText Text:="" & objRs("Adresse") & vbCrLf
        Selection.TypeText Text:="" & objRs("postby") & vbCrLf
        objRs.Close
        objConn.Close

End If
End If
End Sub
Avatar billede BIRGER Seniormester
27. juni 2004 - 23:53 #3
Viker bare !!!  tak for det !!!
Avatar billede kabbak Professor
27. juni 2004 - 23:56 #4
så får du et svar. ;-))
Avatar billede kabbak Professor
27. juni 2004 - 23:58 #5
tak for point
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