vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

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 Sub
Leider 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
CSV-Export Routine aus Modul ausrufen1.081smeik03.01.07 21:54
Re: CSV-Export Routine aus Modul ausrufen511smeik05.01.07 16:53

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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