[VB.NET] Query-output naar een RTF-bestand

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 13:20
Ik wil in een VB.Net applicatie een mailmerge uitvoeren naar Word. Ik heb inmiddels de koppeling om een word-document te openen maar ik krijg het niet voor elkaar om geautomatiseerd een RTF-bestand aan te maken, die ik vervolgens in Word wil openen.

In MS Access is het mogelijk om in twee regels het RTF-bestand aan te maken.

code:
1
2
CurrentDb.QueryDefs("queMailmerge").SQL = strSearchrelatie
DoCmd.OutputTo acOutputQuery, "quemerge", acFormatRTF, "Mailmerge.rtf"


In VB.Net heb ik hoogstwaarschijnlijk een richtextbox nodig, toch? Ik kan dmv een loadfile het bestaande rtf-bestand in de richtextbox stoppen, alleen een query lukt mij niet. Hoe kan ik dit in VB.Net realiseren?

[ Voor 7% gewijzigd door TweakersOnly op 13-08-2003 14:59 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je kunt ook een Crystal Reports rapportje als RTF (of misschien nog mooier) een .PDF exporteren.

Ik heb wel een routine (in c#) dit dit doet, en het bestandje emailt. Misschien heb je daar belang bij?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 13:20
Ik wil juist geen Crystal Reports gebruiken. In een ander topic had ik al gemeld dat Crystal Reports erg traag is, maar het is gewoonweg niet werkbaar. Als ik een querymet slechts 1 record erin gebruik als datasource voor CR dan duurt het op sommige PC's meer dan 5 minuten voordat de brief in Crystal Reports wordt getoond.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ja, maar je had niet meer gereplyed in het vorige topic.....

Oops! Google Chrome could not find www.rijks%20museum.nl


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Aan de ene kant geef je aan dat je de koppeling naar Word inmiddels hebt, en aan de andere kant heb je het over een richtextbox. Vervolgens begin je over een query... Nou haal je imho een aantal zaken gigantisch door elkaar. Mijn vraag is dan ook als volgt:

Heb je...
  1. ...een Word-koppeling (a la COM) en wil je weten hoe je een aldaar opgebouwd document kunt opslaan als .rtf?
  2. ...een stukkie tekst in een richtextbox welke je op wil slaan als .rtf?
  3. ...een query die je in een richtextbox wil plaatsen die je wil opslaan als .rtf?
  4. ...iets anders wat je op een andere manier wil opslaan als .rtf?
  5. ...een optie die ik nog niet bedacht had? :+
Ik hoop dat je begrijpt dat ik het niet helemaal begrijp ;)

Er zijn verschillende oplossingen voor jouw probleem, maar dan zou het wel tof zijn als je uiteindelijke probleem duidelijk zou zijn...

[ Voor 8% gewijzigd door OZ-Gump op 13-08-2003 14:50 ]

My personal website


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 13:20
Ik dacht dat ik redelijk volledig was. Het gaat zich dus om punt C: Ik wil at runtime een query uitvoeren en de resultaten wegschrijven naar een RTF-bestand. Om deze resultaten weg te kunnen schrijven naar een RTF-bestand heb ik hoogstwaarschijnlijk een RichTextBox nodig. :)

Als ik het RTF-bestand eenmaal heb dan kan ik in Word een mailmergebestand aanmaken en hierbij het RTF-bestand als bron gebruiken.

In mijn VB.Net-applicatie kan ik daarna, als de resultaten van de query zijn weggeschreven naar het RTF-bestand, de Word-applicatie opstarten enaan de hand van het mailmergeebestand en het RTF-bestand een mailmerge uitvoeren.

Samengevat: Ik hoef te weten hoe ik de resultaten van een query, al dan niiet via een richtextbox, kan wegschrijven naar een RTF-bestand.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Kijk, dat is een vraag stellen ;)

Nee, da's natuurlijk onzin, maar het maakt het wel een stuk duidelijker. Ik heb zojuist hier even uitgeprobeerd, en de gegevens die in je RichTextBox staan kun je in een .rtf opslaan door bijvoorbeeld de volgende code te gebruiken:
Visual Basic:
1
  RichTextBox1.SaveFile("c:\tst.rtf", RichTextBoxStreamType.RichText)
Het plaatsen van Query-resultaten in een RichTextBox zul je handmatig moeten doen, denk ik. Je loopt door je recordset heen en voegt voor elk record een regel aan je RichTextBox toe.

[ Voor 6% gewijzigd door OZ-Gump op 13-08-2003 15:10 . Reden: leesbaarheidsenters (3 x woordwaarde!) ]

My personal website


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 13:20
FF een klein schopje. :) Ik heb geprobeerd om de gegevens van een dataset in een Richtextbox te krijgen, maar het lijkt niet te lukken. De gegevens van de dataset kan ik echter probleeemloos in een datagrid stoppen:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Handles Button1.Click
        Dim ds As New DataSet()
        ds = New DataSet("Mailmerge")

        Dim strCon As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"
        Dim strSQLQuery As String = "SELECT * FROM Medewerker"

        Dim con1 As OleDbConnection = New OleDbConnection(strCon)
        Dim com1 As OleDbCommand = New OleDbCommand(strSQLQuery)

        com1.CommandType = CommandType.Text
        con1.Open()
        com1.Connection = con1

        Dim adap1 As OleDb.OleDbDataAdapter = New OleDbDataAdapter()
        adap1.SelectCommand = com1
        adap1.TableMappings.Add("Table", "Mailmerge")
        adap1.Fill(ds)
        DataGrid1.SetDataBinding(ds, "Mailmerge")
    End Sub


Nu is nog alleen de vraag hoe ik de querygegevens in een richtextbox of rechtstreeks naar een rtf-bestand kan krijgen.

[ Voor 4% gewijzigd door TweakersOnly op 14-08-2003 10:14 ]

Pagina: 1