Horst1945
Cadet 4th Year
- Registriert
- Okt. 2014
- Beiträge
- 106
Hallöchen,
ich musste wohl oder übel, nachdem Microsoft kein Update mehr auf die Windows XP Prof. mehr macht und diese XP-Version sozusagen eingestellt hat, meine Betriebssoftware auf Windows 7 bzw. auf Windows 8.1 umstellen.
Nicht nur das, denn ich musste auch mein keines selbstgeschriebenes Faktura, das ich unter Visual Basic 6 geschrieben habe, auch umstellen.
Dies Faktura-Programm lief auf eine Windows Server 2003 Business. Den PC habe ich alle 3 Jahre ausgetauscht.
Ich habe mir folgende Programme neuzugelegt:
- Visual Basic Studio Professional 2013
- Windows Server 2012 R2
Ich habe so langsam begonnen, das Faktura-Programm unter VB 2013 neu zuschreiben.
Hier ein Einblick über das Test-Modul „Artikel“:
Code:
Imports System.Data
Imports System.Data.OleDb
Public Class Artikel
Dim inc As Integer
Dim MaxRows As Integer
Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim Sql As String
Dim suchen As String
Dim listpreis As Double = 0.0
Dim aSuchen As Double
Private Sub Artikel_Load(sender As Object, e As EventArgs) Handles MyBase.Load
grbSuchen.Visible = False
With cmbSuchWo
.Items.Add("Artikel-Nr")
.Items.Add("Arikel-Bezeichnung")
.Text = "Artikel-Nr"
End With
dbProvider = "Provider = Microsoft.Jet.OLEDB.4.0;"
dbSource = "Data Source =faktur.mdb"
con.ConnectionString = dbProvider & dbSource
If grbSuchen.Visible = True Then
If cmbSuchWo.Text = "Artikel-Nr" Then
Sql = "Select * from artikel where artnr =" & "'" & suchen & "'"
ElseIf cmbSuchWo.Text = "Artikel-Bezeichnung" Then
Sql = "Select * from artikel where artbz =" & "'" & suchen & "'"
End If
Else
Sql = "SELECT * FROM artikel"
End If
Try
da = New OleDb.OleDbDataAdapter(Sql, con)
da.Fill(ds, "artikel")
con.Close()
Catch ex As Exception
MsgBox("Tabelle Artikel ist bereits geöffnet", vbAbort, "Tabelle")
Return
End Try
AllleSehen()
End Sub
Private Sub AllleSehen()
If Not IsDBNull(ds.Tables("artikel").Rows(0).Item("artnr")) Then
txtArtNr.Text = ds.Tables("artikel").Rows(0).Item("artnr")
Else
txtArtNr.Clear()
End If
If Not IsDBNull(ds.Tables("artikel").Rows(0).Item("artbez")) Then
txtArtBez.Text = ds.Tables("artikel").Rows(0).Item("artbez")
Else
txtArtBez.Clear()
End If
If Not IsDBNull(ds.Tables("artikel").Rows(0).Item("lfNr")) Then
txtLiefRaNr.Text = ds.Tables("artikel").Rows(0).Item("lfNr")
Else
txtLiefRaNr.Clear()
End If
If Not IsDBNull(ds.Tables("artikel").Rows(0).Item("listpreis")) Then
listpreis = Convert.ToDouble(ds.Tables("artikel").Rows(0).Item("listpreis"))
txtListenPr.Text = listpreis
If Not IsDBNull(ds.Tables("artikel").Rows(0).Item("lfNr")) Then
txtLiefRaNr.Text = ds.Tables("artikel").Rows(0).Item("lfNr")
Else
txtLiefRaNr.Clear()
End If
Else
txtListenPr.Clear()
End If
MaxRows = ds.Tables("artikel").Rows.Count
inc = -1
End Sub
Private Sub NavigateRecords()
If Not IsDBNull(ds.Tables("artikel").Rows(inc).Item("artnr")) Then
txtArtNr.Text = ds.Tables("artikel").Rows(inc).Item("artnr")
Else
txtArtNr.Clear()
End If
If Not IsDBNull(ds.Tables("artikel").Rows(inc).Item("artbez")) Then
txtArtBez.Text = ds.Tables("artikel").Rows(inc).Item("artbez")
Else
txtArtBez.Clear()
End If
If Not IsDBNull(ds.Tables("artikel").Rows(inc).Item("lfNr")) Then
txtLiefRaNr.Text = ds.Tables("artikel").Rows(inc).Item("lfNr")
Else
txtLiefRaNr.Clear()
End If
If Not IsDBNull(ds.Tables("artikel").Rows(inc).Item("listpreis")) Then
listpreis = Convert.ToDouble(ds.Tables("artikel").Rows(inc).Item("listpreis"))
txtListenPr.Text = listpreis
Else
txtListenPr.Clear()
End If
End Sub
Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
If inc <> MaxRows - 1 Then
inc = inc + 1
NavigateRecords()
Else
MsgBox("Letzter Datensatz")
End If
End Sub
Private Sub cmdSuchen_Click(sender As Object, e As EventArgs) Handles cmdSuchen.Click
grbSuchen.Visible = True
txtAbDatum.Clear()
txtABWRMenge.Clear()
txtArtAllgemein.Clear()
txtArtBez.Clear()
txtArtNr.Clear()
txtArtZusatz.Clear()
txtErstazNr.Clear()
txtLgBestand.Clear()
txtLgMenge.Clear()
txtLgOrt.Clear()
txtLiefRaNr.Clear()
txtListenPr.Clear()
txtWEMenge.Clear()
txtZuDatum.Clear()
cmdSuchen.Visible = False
End Sub
Private Sub btmBeenden_Click(sender As Object, e As EventArgs) Handles btmBeenden.Click
Me.Close()
End Sub
Private Sub Label25_Click(sender As Object, e As EventArgs) Handles Label25.Click
Label25.Text = inc
End Sub
Private Sub txtArtNr_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtArtNr.KeyPress
If e.KeyChar = ChrW(13) Then
txtArtBez.Focus
End If
End Sub
Private Sub txtArtNr_TextChanged(sender As Object, e As EventArgs) Handles txtArtNr.TextChanged
End Sub
Private Sub btnSuchen_Click(sender As Object, e As EventArgs) Handles btnSuchen.Click
'aSuchen = txtSuchen.Text
suchen = txtSuchen.Text
If grbSuchen.Visible = True Then
If cmbSuchWo.Text = "Artikel-Nr" Then
Sql = "Select * from artikel where artnr =" & "'" & suchen & "'"
End If
End If
da = New OleDb.OleDbDataAdapter(Sql, con)
da.Fill(ds, "artikel")
AllleSehen()
End Sub
End Class
Ich habe das Proggi (Windows Form-Anwendung) auch schon einmal getestet und da ist mir aufgefallen, dass die Datenbank nicht auf zwei Rechner gleichzeitig angesprochen werden kann. Derzeit habe ich neben dem Server, fünf weiter Arbeitsstationen (PC)
Ich habe mich etwas um gehört und man hat mir gesagt, dass ich mir noch zusätzlich einen SQL Server zulegen müsste und das Programm unter Visual C# umgestalten sollte. Gesagt getan: „Aber da treten bei mir einige Schwierigkeiten auf.
Das Programm sollte schon wie unter der Testversion, auch unter Visual-Windows Form-Anwendung vom Prinzip her genauso aussehen:
Kann mir jemand von Euch mir einen kleinen Tipp geben, wie ich das mit Visual C# realisieren kann?
Horst