Ciao a tutti,
creo una tabella in word in questo modo:
codice:
Private Sub Command4_Click()
Dim WordApp As Object
Set WordApp = New Word.Application
WordApp.Documents.Open App.Path & "\Carta_intestata.doc"
WordApp.Visible = True
With WordApp.Selection
.Tables.Add WordApp.Selection.Range, 1, 7
.Tables(1).Columns.AutoFit
.Tables(1).Borders.Enable = True
End With
End Sub
la popolo con i dati presenti in un MSFlexGrid dopo una query in questo modo:
codice:
.Tables(1).Cell(2, 1).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 2) & ""
.Tables(1).Cell(2, 2).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 3) & ""
.Tables(1).Cell(2, 3).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 8) & ""
.Tables(1).Cell(2, 4).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 9) & ""
.Tables(1).Cell(2, 5).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 10) & ""
.Tables(1).Cell(2, 6).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 17) & ""
.Tables(1).Cell(2, 7).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 19) & ""
tutto bene fin qui... ma c'è un modo per aggiungere alla tabella di word un tot di righe per quanti sono i record trovati dalla query sulla MSflexGrid?
Mi spiego meglio:
se facendo la query, viene trovato e visualizzato nel MSFlexGrid un solo record allora il codice qui sopra va bene...ma se la query trova più records come faccio ad aggiungere alla tabella tante righe (rows) per quanti sono i record trovati?
se aumento il numero di righe in queto punto:
codice:
.Tables.Add WordApp.Selection.Range, 10, 7
poi mi lascia ad esempio 7 righe vuote se la query mi trova solo 3 records e non va bene in quanto la tabella dev'essere rapportata al contenuto. Come posso fare? :master:
inoltre per aggiungere i records alla tabella devo ogni volta ripetere la stessa procedura cambiando il numero di riga e colonna ?
Esempio:
codice:
.Tables(1).Cell(2, 1).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 2) & ""
.Tables(1).Cell(2, 2).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 3) & ""
.Tables(1).Cell(2, 3).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 8) & ""
.Tables(1).Cell(2, 4).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 9) & ""
.Tables(1).Cell(2, 5).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 10) & ""
.Tables(1).Cell(2, 6).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 17) & ""
.Tables(1).Cell(2, 7).Range.Text = " " & MSFlexGrid1.TextMatrix(1, 19) & ""
.Tables(1).Cell(3, 1).Range.Text = " " & MSFlexGrid1.TextMatrix(2, 2) & ""
.Tables(1).Cell(3, 2).Range.Text = " " & MSFlexGrid1.TextMatrix(2, 3) & ""
.Tables(1).Cell(3, 3).Range.Text = " " & MSFlexGrid1.TextMatrix(2, 8) & ""
.Tables(1).Cell(3, 4).Range.Text = " " & MSFlexGrid1.TextMatrix(2, 9) & ""
.Tables(1).Cell(3, 5).Range.Text = " " & MSFlexGrid1.TextMatrix(2, 10) & ""
.Tables(1).Cell(3, 6).Range.Text = " " & MSFlexGrid1.TextMatrix(2, 17) & ""
.Tables(1).Cell(3, 7).Range.Text = " " & MSFlexGrid1.TextMatrix(2, 19) & ""
o c'è un modo più veloce ed automatico?
Spero di essere stato chiaro nella descrizione di ciò che voglio fare...e scusate la scocciatura!!!