[VBA/Access] Hyperlink uitlezen en inhoud kopiëren

Pagina: 1
Acties:

  • Mujo
  • Registratie: November 2000
  • Laatst online: 23-08-2021

Mujo

Nee hè?

Topicstarter
Onderstaande code werkt goed met text, maar zodra ik een hyperlink
gebruik, krijg ik het niet meer voor elkaar.

De bedoeling is dat 1 tabel (vragentabel) wordt doorlopen en zodra
de hyperlink tegengekomen wordt, dat dan de volledige content
(dus plaatjes, tabellen, whatever; Copy.WholeStory?) naar een nieuw
document geschreven wordt, op basis van een sjabloon (*.dot).

Het 'deel met hekjes' is waar het mis gaat. Het eerste record wordt ingelezen,
vraagnummer, dan dus de hyperlink, en dan komt de foutmelding:
"Objectvariabele of blokvariabele With is niet ingesteld!".

Graag zoek ik dus hulp bij het uitlezen van hyperlinks en het verwerken hiervan.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Option Compare Database

Dim m_appWd As New Word.Application
Dim m_docReport As Word.Document

Public g_sDBProjectPath As String
Public Const g_sCircuit As String = "Computer Network"


Sub Main(bReport As Boolean)
    g_sDBProjectPath = Application.CurrentProject.Path & "\"
    If bReport = True Then
        MaakWordDocument
    End If
    LeesDatabaseIn bReport, True
    If bReport = True Then
        AddTotalRow
    End If
End Sub


Sub MaakWordDocument()
    Set m_docReport = m_appWd.Documents.Add(Template:=g_sDBProjectPath _
& "testdatabase.dot", NewTemplate:=False)
End Sub


Sub LeesDatabaseIn(bReport As Boolean, bUpdateForm As Boolean)
    Dim sVraagnummer As Integer
    Dim sLocatieVraag As Hyperlink
    Dim sMoeilijkheidsgraad As Integer
    Dim sAantalKeerGebruikt As Integer
    
    Dim rsttestdatabase As New ADODB.Recordset
    rsttestdatabase.Open "Vragentabel", CurrentProject.Connection, adOpenStatic
    
    With rsttestdatabase
    Do
        sVraagnummer = .Fields("Vraagnummer")
      #########################################
      #sLocatieVraag = .Fields("LocatieVraag")#
      #########################################
        sMoeilijkheidsgraad = .Fields("Moeilijkheidsgraad")
        sAantalKeerGebruikt = .Fields("AantalKeerGebruikt")
        If bReport = True Then
            VoegToeAanTabel sVraagnummer,
                                         sLocatieVraag,
                                         sMoeilijkheidsgraad,
                                         sAantalKeerGebruikt
        End If
        .MoveNext
    Loop Until .EOF = True
    .Close
    End With
End Sub


Sub VoegToeAanTabel(sVraagnummer As Integer,
                                    sLocatieVraag As Hyperlink,
                                    sMoeilijkheidsgraad As Integer,
                                    sAantalKeerGebruikt As Integer)
    With m_docReport.Tables(1)
        With .Rows.Last
            .Cells(1).Range.Text = sVraagnummer
            .Cells(1).Range.Text = sLocatieVraag
            .Cells(1).Range.Text = sMoeilijkheidsgraad
            .Cells(1).Range.Text = sAantalKeerGebruikt
        End With
        .Rows.Add
    End With
End Sub


Sub AddTotalRow()
    With m_docReport.Tables(1).Rows.Last
        .Range.Bold = True
        .Range.Font.Size = 16
        .Borders.Item (wBorderTop)
            .LineStyle = wdLineStyleDouble
    End With
m_docReport.SaveAs g_sDBProjectPath & "Nieuwrapport.doc"
m_appWd.Visible = True
End Sub


Sub TestCreatingWordDocument()
    g_sDBProjectPath = Application.CurrentProject.Path & "\"
    MaakWordDocument
    LeesDatabaseIn bReport:=True, bUpdateForm:=False
    AddTotalRow
End Sub

Gelieve niet te roken in mijn kantoorkamer!
Ik ben meer verslaafd aan sex, dan jij aan roken, maar je ziet mij toch ook niet neuken op kantoor?


Verwijderd

Waarschijnlijk moet je dat object sLocatievraag nog initialiseren.

zoiets als " set sLocatieVraag = new Hyperlink"

[ Voor 7% gewijzigd door Verwijderd op 11-03-2004 13:58 ]