Announcement

Collapse
No announcement yet.

Arbeitszeit und Dienstplan Exceltool in VB.NET mit SQL umsetzen?

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

  • Arbeitszeit und Dienstplan Exceltool in VB.NET mit SQL umsetzen?

    Hallo,

    ich habe mit einem Kollegen vor einiger Zeit zwei Excelsachen entwickelt. Einen Dienstplan<BR> für unsere Mitarbeiter und eine Datei zur Zeitabrechnung weil es noch keine andere Zeit-<BR>erfassung gibt. Da es inzwischen auf Grund verscheidener Excelversionen usw. immer wieder<BR> Probleme gibt, würde ich gern Excel abschaffen. Wie kann man das am Besten in VB umsetzen, <BR>wobei am Besten eine SQL-Datenbank sicher sinnvoll wäre.<BR><BR>Wo setzt man da am Besten an? Kann man die vielen Module teilweise übernehmen oder <BR>kann man das Excel so nachstellen in einem Datagird oder so? Wäre für jeden Tip dankbar.<BR><BR>Gruß <BR><BR>Angie

  • #2
    Hallo Angie!

    Du musst dir mal ueberlegen welchen Server (Betriebssystem, Datenbanktyp)du verwenden willst. Hier wuerde sich vermutlich - falls unter Windows - eine MSDE (download auf der Microsoft HP) anbieten, da unter gewissen Voraussetzungen die Verwendung GRATIS ist. Kannst auch eine der zahlreichen Datenbanken (Informix, Cache, Tamino, AdabasD, MySQL usw.)unter Linux versuchen.

    Deine Module sind vermutlich in VBA geschreiben. Hier ist es am einfachsten du schreibst sie in VB.Net noch einmal. Koenntest auch eine externe Lib machen und anschliessend importieren - das ist vermutlich zuviel Aufwand.

    Du kannst natuerlich ein Datagrid verwenden - kommt darauf an was du machen moechtest. Ich denke fuer einen Dienstplan bietet sich eine Unterteilung in mehrere Steuerelemente an und die Uebersicht in einem Datagrid ausgeben.
    Aber wie gesagt das haengt von den Vorgaben ab und man kann das sicher nicht so global schreiben.

    Lg
    Tom

    Comment


    • #3
      Hallo,

      danke für die Antwort. Wie schon gesagt, ich würde gern den vorhandenen SQL-Server dafür nutzen, da auch mehrere zugreifen sollen und
      die Daten dort ordentlich gesichert werden.
      Außerdem steht mir eigentlich vor allem VB zur Verfügung. Nun fehlt mir nur der Ansatzpunkt. Ich weiß nicht so richtig, wie ich so etwas in etwa 1:1 umsetzen kann. Vielleicht kann da jemand mal einen Tip geben, wie man am besten vorgeht. Excel ist ja nicht VB.NET bzw. ein Dataset/Datagrid. Vielleicht kann doch jemand einen Ansatz geben?

      Wäre ganz Super, wenn man erst einmal den Einstieg hätte.

      Gruß

      Angi

      Comment


      • #4
        Hallo Angie,

        man kann das ganz einfach via OLEDB und Excel selbst abziehen, das wäre zumindest<BR> eine einfache Lösung. Ich habe da ein Beispiel mal verwendet:<P><PRE>
        Public Class frmMain
        Inherits System.Windows.Forms.Form
        </PRE><PRE>
        Private Sub btnStart_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnStart.Click
        </PRE><PRE>
        Dim DS As System.Data.DataSet
        Dim mComm As System.Data.OleDb.OleDbDataAdapter
        Dim mConn As System.Data.OleDb.OleDbConnection
        Dim mTable As DataTable
        Dim mRow As DataRow
        Dim mCol As DataColumn
        </PRE><PRE>
        ' Verbindung nach Excel aufnehmen
        mConn = New System.Data.OleDb.OleDbConnection( _
        "provider=Microsoft.Jet.OLEDB.4.0; " & _
        "data source=" & _
        System.Windows.Forms.Application.StartupPath & "\..\.Exceltabelle.xls; " & _
        "Extended Properties=Excel 8.0;")
        </PRE><PRE>
        ' Tabellen entsprechen Arbeitsblättern.
        mComm = New System.Data.OleDb.OleDbDataAdapter( _
        "select * from [patient$]", mConn)
        </PRE><PRE>
        ' Dataset für Tabelle erstellen
        DS = New System.Data.DataSet
        DataGrid1.ReadOnly = True
        Try
        mComm.Fill(DS, "Name")
        Catch ex As Exception
        Throw New ApplicationException("Excel-VB.", ex)
        End Try
        </PRE><PRE>
        ' Datagrid füllen
        DataGrid1.DataSource = DS.Tables("Name")
        DataGrid1.Refresh()
        </PRE><PRE>
        mConn.Close()
        </PRE><PRE>
        End Sub
        End Class</PRE><P>Du musst es nur anpassen. Ich weiß nicht ob es dir was nutzt und so schön ist es nun auch wieder nicht, aber es<BR> funktioniert.wenn aber keine andere Idee für dich in Sicht ist solltest du es damit versuchen.<P>Gruß<P>Simon

        Comment


        • #5
          Hallo,

          leider ist das nicht so die Richtung, die ich wollte. Eigentlich wollte ich versuchen, das<BR> Excel ganz wgzulassen. Nur sind da viele VBA-Module, wo ich nicht so richtig weiß,<BR> wo man ansetzt um das Ganze umzubauen in ein eigenständiges Programm.<P>Trotzdem Danke für die Mühe, aber vielleicht noch jemand Anderes einen Tip, wie bzw. wo man <BR>ansetzt. Es sind 4 Tabellen, wobei eigentlich 2 unbedingt relevant sind. Der Dienstplan selbst<BR> und ein Art Geburtstagstabelle, die jetzt zur Zeit in den Kommentaren von Excel angezeigt wird.<P>Sicher muss man die Daten der Leute in eine Datenbank übernehmen und dann auch<BR> die Dienstarten selbst auch in einer extra Tabelle. Nur kann ich jetzt immer von Heute<BR> 90 Tage zurück mir alles anschauen und 1 Jahr voraus. Das finden meine Chefs praktisch.<P>Wenn jemand einen Ansatzpunkt geben könnte, wo man wie anfängt wäre das super.<P>Gruß<P>Angi

          Comment


          • #6
            Leider kann ich dann auch nicht weiterhelfen, da ich nur das kenne.<BR> Mit SQL und Umstrickung von Excel kann ich dann doch leider nicht<BR> weiterhelfen.<P>Simon

            Comment


            • #7
              Hallo Angie,

              Dein Vorhaben ist sehr umfangreich. Ich habe so etwas schon einmal gemacht unter VB6. Wenn Du willst kannst Du mich erreichen unter [email protected]

              MFG
              MG

              Comment

              Working...
              X