|
| |

VB.NET - Ein- und Umsteiger| CSV-Export Routine aus Modul ausrufen | |  | | Autor: smeik | | Datum: 03.01.07 21:54 |
| Hallo zusammen !
Mal sehen ob ich mein Problem verständlich erklären kann...
Alsoooo, ich bastel an einer Bücherverwaltungssoftware und nutze dafür VB Exress 2005.
Diese basiert im Wesentlichen auf einer VB Express 2005 SQL Datenbank, einem MDI-Parent (MDIParentMain) , zwei MDI-Childs (frmEingabe und frmAbfrage) und einem Modul (Module1)
Im Module1 steht folgender Code:
Module Module1
Public Function csvtext() As String
Dim myTable As DataTable
Dim myRow As DataRow
Dim myCol As DataColumn
Dim text As String = ""
' Alle Spalten-Namen in die Variable "text" schreiben
myCol = My.Forms.frmEingabe.BuchlingDataSet.Buch.Columns(0)
For Each myCol In My.Forms.frmEingabe.BuchlingDataSet.Buch.Columns
text = text & myCol.Caption & "; "
Next
text = text & Chr(10)
' Alle Zeilen des Datasets in die Variable "text" schreiben
For Each myTable In My.Forms.frmEingabe.BuchlingDataSet.Tables
For Each myRow In myTable.Rows
For Each myCol In myTable.Columns
text = text & (myRow(myCol).ToString()) & "; "
Next myCol
text = text & Chr(10)
Next myRow
Next myTable
Return text
End Function
End Module Das Modul wird von MDIParentMain aus aufgerufen:
Private Sub savefile(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles SaveToolStripButton.Click, _
SaveToolStripMenuItem.Click
SaveFileDialog1.InitialDirectory = _
My.Computer.FileSystem.SpecialDirectories.MyDocuments
SaveFileDialog1.Title = "Daten exportieren"
SaveFileDialog1.Filter = "Textdateien (*.txt)|*.txt|Alle Dateien (" & _
"*.*)|*.*"
If (SaveFileDialog1.ShowDialog(Me) = _
System.Windows.Forms.DialogResult.OK) Then
'CSV-Export
My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, _
Module1.csvtext, False)
'XML-Export
'My.Forms.frmEingabe.BuchlingDataSet.WriteXml(
' SaveFileDialog1.FileName)
End If
End SubLeider werden nur die Spaltennamen gespeichert, nicht aber die eigentlichen Inhalte.
Füge ich diesen Code jedoch in frmEingabe ein, funktioniert alles einwandfrei:
Public Class frmEingabe
...
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle
' "BuchlingDataSet.Buch". Sie können sie bei Bedarf verschieben oder
' entfernen.
Me.BuchTableAdapter.Fill(Me.BuchlingDataSet.Buch)
End Sub
...
Private Sub ExportierenToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
ExportierenToolStripMenuItem.Click
SaveFileDialog1.InitialDirectory = _
My.Computer.FileSystem.SpecialDirectories.MyDocuments
SaveFileDialog1.Title = "Daten exportieren"
SaveFileDialog1.Filter = "Text-Dateien (txt) | *.txt"
If (SaveFileDialog1.ShowDialog(Me) = _
System.Windows.Forms.DialogResult.OK) Then
' CSV Export
My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, _
csvtext, False)
' XML Export
'BuchlingDataSet.WriteXml(SaveFileDialog1.FileName)
End If
End Sub
Public Function csvtext() As String
Dim myTable As DataTable
Dim myRow As DataRow
Dim myCol As DataColumn
Dim text As String = ""
'Alle Spalten-Namen in die Variable "text" schreiben
myCol = BuchlingDataSet.Buch.Columns(0)
For Each myCol In BuchlingDataSet.Buch.Columns
text = text & myCol.Caption & "; "
Next
text = text & Chr(10)
'Alle Zeilen des Datasets in die Variable "text" schreiben
For Each myTable In BuchlingDataSet.Tables
For Each myRow In myTable.Rows
For Each myCol In myTable.Columns
text = text & (myRow(myCol).ToString()) & "; "
Next myCol
text = text & Chr(10)
Next myRow
Next myTable
Return text
End Function
...
End Class Ich vermute, es liegt irgendwie daran, dass das Modul nicht auf die eigentlichen Datenfelder in der DB zugreifen kann. Bin mir da aber nicht sicher.
Hat jemand einen Ansatzpunkt oder gar eine Lösung für mich?
Danke schonmal und Grüße
Smeik |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|