Announcement

Collapse
No announcement yet.

Datenverarbeitung Visual Basic, Access, Excel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenverarbeitung Visual Basic, Access, Excel

    Hallo zusammen,

    ich habe mit Visual Basic ein Eingabe Programm geschrieben und mit einer Accessdatenbank verknüpft. Das Programm läuft soweit und aktualisiert die Daten in der Access Tabelle. Nun möchte ich dass Access die Daten automatisch in feste Felder in Excell schreibt, da die Daten dort berechnet werden in einer fertigen Mappe und Anschließend von dort aus gedruckt werden.

    Sinn und Ziel: Ich arbeite Selbstständig in der Akquise und möchte wenn ich mit einem Makler fertig bin die Daten in mein Programm eintragen, wie Datum(ist fortlaufend), Tätigkeit, Stunden(rechnet Excel selbst in meiner Mappe), Anrufe, Termine, Wiedervorlagen etc..

    Die Daten sollen nun in eine feste selbstrechnende Tabelle in Excel übertragen werden und nur noch gedruckt werden müssen, da meine Ex-Tabelle entsprechende selbst rechnende Felder hat.

    Wer kann mir da helfen?
    Unbenannt.jpg

    Code:
    Public Class Form1
    
        Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    
        End Sub
    
        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 "_db_stdDataSet.Geffert". Sie können sie bei Bedarf verschieben oder entfernen.
            Me.GeffertTableAdapter.Fill(Me._db_stdDataSet.Geffert)
    
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            GeffertBindingSource.AddNew()
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            GeffertBindingSource.RemoveCurrent()
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            On Error GoTo saveerr
            GeffertBindingSource.EndEdit()
            GeffertTableAdapter.Update(_db_stdDataSet.Geffert)
    saveerr:
            Exit Sub
        End Sub
    
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            Me.Close()
        End Sub
    
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            GeffertBindingSource.MoveNext()
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            GeffertBindingSource.MovePrevious()
        End Sub
    End Class
    Hier ist der Code:
    Noch eine Frage, wie kann die die selbe VB Maske für andere Tabellen innerhalb der DB nutzen? Statt dem Tabellennamen einfach .current?
    Zuletzt editiert von tat2devil; 19.10.2014, 16:29.

  • #2
    Der Code kann etwa so aussehen, (auch mit Option Strict On)
    Du brauchst dafür NetOffice, zwar nicht zwingend, man kann sicher auch auf Excel.exe einen Verweis setzen, aber NetOffice macht dich unabhängig von der jeweiligen Excelversion.


    Code:
    Imports System.IO
    'Ausserdem diese Namespaces(im Fall von NetOffice)
    Imports ExampleBase
    Imports NetOffice
    Imports Excel = NetOffice.ExcelApi
    Imports NetOffice.ExcelApi.Enums
    
    
    Public Sub OpenExcel(ByVal strExcelFile As String)
    
                Dim objEx As Excel.Application = Nothing
                Dim xlWorkBook As Excel.Workbook
                Dim xlWorkSheet As Excel.Worksheet
    
                Try
                  
                    objEx = New Excel.Application
    
                    If File.Exists(strExcelFile ) Then
                        objEx = CType(CreateObject("Excel.Application"), Excel.Application)                  
                       ' objEx.DisplayAlerts = False Optional                 
                        xlWorkBook = objEx.Workbooks.Add
                        xlWorkSheet = CType(xlWorkBook.Sheets("sheet1"), Excel.Worksheet)
                        xlWorkSheet.Range("A1").Value = "Dein Wert" ' wenn du nixcht für alle werte explicit schreiben willst, musst du eine schleife drüber ziehen
                      
                        objEx.Visible = True
    
               Catch ex As Exception
                    MessageBox.Show("clsExcel openExcel Error=" & ex.Message)
                Finally
                    If TypeOf objEx Is IDisposable Then
                        TryCast(objEx, IDisposable).Dispose()
                    End If
                    If Not objEx Is Nothing Then objEx = Nothing
                End Try
    
            End Sub
    JonDonym: privacy needs anonymity more than ever

    Comment

    Working...
    X