Selasa, 24 Januari 2012




Cara pembuatan client-server dengan menggunakan data karyawan

Server
Login
Form login

Perintah program nya
Private Sub Command1_Click()
If user.Text = "hery" And password.Text = "0902" Then
MDIForm1.Show
ElseIf user.Text = "" & password.Text = "" Then
MsgBox "Silahkan masukkan password login", vbCritical, "info"
user.SetFocus
Else
MsgBox "Password yang anda inputkan salah", vbCritical, "info"
user.Text = ""
password.Text = ""
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
user.Text = ""
password.Text = ""
password.PasswordChar = "*"
End Sub

Setelah anda buat login terus anda link kan ke MDI

Form MDI



Listing program nya
Private Sub e_Click()
Unload Me
End Sub

Private Sub ldm_Click()
Datakaryawan.Show
End Sub

Lalu anda memilih laporan data karyawan
Listing program nya

Modul

Public db As New ADODB.Connection
Public rs As New ADODB.Recordset
Public rs2 As New ADODB.Recordset
Public SQL As String
Sub opendb()
    If db.State = adStateOpen Then db.Close
    db.CursorLocation = adUseClient
    db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\hery siregar\Documents\db1.mdb;Persist Security Info=False"
End Sub
Sub clearform(f As Form)
    Dim ctl As Control
    For Each ctl In f
        If TypeOf ctl Is TextBox Then ctl.Text = ""
        If TypeOf ctl Is ComboBox Then ctl.Text = ""
    Next
End Sub
Sub center(f As Form)
    f.Move (Screen.Width - f.Width) / 2, (Screen.Height - f.Height) / 4
 
End Sub
Sub rubahcmd(f As Form, L0 As Boolean, L1 As Boolean, L2 As Boolean, L3 As Boolean)
    f.cmdproses(0).Enabled = L0
    f.cmdproses(1).Enabled = L1
    f.cmdproses(2).Enabled = L2
    f.cmdproses(3).Enabled = L3
End Sub


Data karyawan

Private Sub cmdproses_Click(Index As Integer)
Select Case Index
    Case 0
        Call hapus
        nik.SetFocus
    Case 1
        If cmdproses(1).Caption = "&Simpan" Then
            Call prosesDB(0)
        Else
            Call prosesDB(1)
        End If
    Case 2
        X = MsgBox("yakin RECORD karyawan akan dihapus...!", vbQuestion + vbYesNo, "karyawan")
        If X = vbYes Then prosesDB 2
        Call hapus
        nik.SetFocus
    Case 3
        Call hapus
        nik.SetFocus
    Case 4
    Unload Me
End Select
     
End Sub

Sub hapus()
nik.Enabled = True
clearform Me
Call rubahcmd(Me, True, False, False, False)
cmdproses(1).Caption = " &Simpan"
End Sub
Private Sub Form_Load()
Call opendb
Call hapus
mulaiserver
End Sub
Sub prosesDB(log As Byte)
Select Case log
    Case 0
        SQL = "INSERT INTO karyawan(nik,nama,alamat)" & _
        "values('" & nik.Text & _
        "','" & nama.Text & _
        "','" & alamat.Text & "')"
    Case 1
        SQL = "UPDATE karyawan SET nama='" & nama.Text & "'," & _
            "alamat='" & alamat.Text & "' " & _
            "WHERE nik='" & nik.Text & "'"
    Case 2
        SQL = "DELETE  FROM karyawan WHERE nik='" & nik.Text & "'"
    End Select
MsgBox "Pemrosesan  record karyawanbase telah berhasil....!!", vbInformation, "karyawan"
    db.BeginTrans
    db.Execute SQL, adCmdTable
    db.CommitTrans
    Call hapus
    Adodc1.Refresh
    nik.SetFocus

End Sub
Sub tampilkaryawan()
    On Error Resume Next
    nik.Text = rs!nik
    nama.Text = rs!nama
    alamat.Text = rs!alamat
 
End Sub
Sub mulaiserver()
ws.LocalPort = 1000
ws.Listen
End Sub


Private Sub nik_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    If nik.Text = "" Then
        MsgBox "Masukkan nik!", vbInformation, "karyawan"
        nik.SetFocus
        Exit Sub
End If
SQL = " SELECT * FROM karyawan WHERE nik='" & nik.Text & "'"
If rs.State = adStateOpen Then rs.Close
rs.Open SQL, db, adOpenDynamic, adLockOptimistic
If rs.RecordCount <> 0 Then
    tampilkaryawan
    Call rubahcmd(Me, False, True, True, True)
    cmdproses(1).Caption = "&Edit"
    nik.Enabled = False

    Else
        X = nik.Text
        Call hapus
        nik.Text = X
        Call rubahcmd(Me, False, True, False, True)
          cmdproses(1).Caption = "&Simpan"
End If
nama.SetFocus
End If
End Sub

Private Sub ws_ConnectionRequest(ByVal requestID As Long)
ws.Close
ws.Accept requestID
Me.Caption = "server-client" & ws.RemoteHostIP & "connect"

End Sub

Private Sub ws_karyawanArrival(ByVal bytesTotal As Long)
Dim xkirim As String
Dim xkaryawan1() As String
Dim xkaryawan2() As String
ws.Getkaryawan xkirim, vbString, bytesTotal

xkaryawan1 = Split(xkirim, "-")
Select Case xkaryawan1(0)
    Case "SEARCH"
    SQL = " delete * FROM karyawan " & _
    " where nik= '" & xkaryawan1(1) & "'"
    SQL = "SELECT * FROM karyawan WHERE nik='" & xkaryawan1(1) & "'"
    If rs.State = adStateOpen Then rs.Close
rs.Open SQL, db, adOpenDynamic, adLockOptimistic
If rs.RecordCount <> 0 Then
    ws.Sendkaryawan "RECORD-" & rs!nama & "/" & rs!alamat
 
    Else
        ws.Sendkaryawan "NOTHING-karyawan"
    End If
    Case "INSERT"
        db.BeginTrans
        db.Execute xkaryawan1(1), adCmdTable
        db.CommitTrans
        Adodc1.Refresh
        ws.Sendkaryawan "INSERT-XXX"
     
    Case "UPDATE"
        db.BeginTrans
        db.Execute xkaryawan1(1), adCmdTable
        db.CommitTrans
        Adodc1.Refresh
        ws.Sendkaryawan "UPDATE-XXX"
     
    Case "DELETE"
    SQL = " delete * FROM karyawan " & _
    " where nik= '" & xkaryawan1(1) & "'"
    db.BeginTrans
    db.Execute SQL, adCmdTable
    db.CommitTrans
    Adodc1.Refresh
    ws.Sendkaryawan "DEL-xxx"
   End Select
End Sub



Client
Login
Form login
Perintah program nya
Private Sub Command1_Click()
If user.Text = "hery" And password.Text = "0902" Then
MDIForm1.Show
ElseIf user.Text = "" & password.Text = "" Then
MsgBox "Silahkan masukkan password login", vbCritical, "info"
user.SetFocus
Else
MsgBox "Password yang anda inputkan salah", vbCritical, "info"
user.Text = ""
password.Text = ""
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
user.Text = ""
password.Text = ""
password.PasswordChar = "*"
End Sub

Setelah anda buat login terus anda link kan ke MDI
Form MDI


Listing program nya
Private Sub e_Click()
Unload Me
End Sub

Private Sub ldm_Click()
Datakaryawan.Show
End Sub

Lalu anda memilih laporan data karyawan



Form data karyawan


Listing program nya
Dim IpServer As String
Sub hapus()
nik.Enabled = True
ClearFORM Me
Call rubahCMD(Me, True, False, False, False)
cmdproses(1).Caption = "&Simpan"
End Sub
Sub prosesDB(log As Byte)
Select Case log
Case 0
SQL = "INSERT INTO data(nik,nama,alamat)" & _
"values('" & nik.Text & _
"','" & nama.Text & _
"','" & alamat.Text & "')"
Case 1
SQL = "UPDATE data SET nama='" & nama.Text & "'," & _
"alamat='" & alamat.Text & "' " & _
"where nik='" & nik.Text & "'"
Case 2
SQL = "DELETE FROM data WHERE nik='" & nik.Text & "'"
End Select
MsgBox "pemrosesan RECORD database telah berhasil...!", vbInformation, "data"
Call hapus
nik.SetFocus
End Sub

Private Sub cmdproses_Click(Index As Integer)
Select Case Index
Case 0
Call hapus
nik.SetFocus
Case 1
If cmdproses(1).Caption = " &Simpan" Then
Else
SQL = "UPDATE data Set " & _
"nama = '" & nama.Text & _
"' , alamat= '" & alamat.Text & _
"' where nik= '" & nik.Text & "'"
ws.SendData "UPDATE-" & SQL
End If
Case 2
X = MsgBox("yakin RECORD data akan dihapus...!", vbQuestion + vbYesNo, "data")
If X = vbYes Then
ws.SendData "DELETE-" & nik.Text
End If
Call hapus
nik.SetFocus
Case 3
Call hapus
nik.SetFocus
Case 4
Unload Me
End Select
End Sub
Private Sub Form_Load()
Call hapus
mulaikoneksi
End Sub

Sub mulaikoneksi()
IpServer = "192.168.10.1"
IPClient = ws.LocalIP
ws.Connect IpServer, 1000
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
DoEvents
End
End Sub
Private Sub nik_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If nik.Text = "" Then Exit Sub
ws.SendData "SEARCH-" & nik.Text
End If
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim xkirim As String
Dim xdata1() As String
Dim xdata2() As String
ws.GetData xkirim, vbString, bytesTotal
xdata1 = Split(xkirim, "-")
 Select Case xdata1(0)
 Case "NOTHING"
 X = nik.Text
 Call hapus
 nik.Text = X
 Call rubahCMD(Me, False, True, False, True)
 cmdproses(1).Caption = "&Simpan"
 nama.SetFocus

 Case "RECORD"
 xdata2 = Split(xdata1(1), "/")
 nik.Text = xdata2(0)
 nama.Text = xdata2(1)
 alamat.Text = xdata2(2)

 Call rubahCMD(Me, False, True, True, True)
 cmdproses(1).Caption = "&Edit"
 nik.Enabled = False
 nama.SetFocus

 Case "DEL"
 MsgBox "penghapusan data berhasil!"
 Call hapus

 Case "EDIT"
 MsgBox "Pengeditan Record berhasil!"
 Call hapus
 End Select
End Sub





Cara koneksi ke database
Pertama anda harus membuat data base nya terlebih dahulu dari
Start - all program - ms office - lalu pilih ms acces
Create a new file - blank database - lalu buat nama database nya
Create table in design view - isi field nya - save(ctrl+w)
Buat nama table nya lalu kembali ke table nya dan isi record nya
Selesai lah pembuatan table nya
Lalu anda koneksikan dari
Adodc klik kanan lalu pilih Adodc properties
Klik build pada menu general
Klik connection lalu pilih dari brows dan pilih database nya
Lalu pilih menu bar - record source
Ganti command type menjadi 2-adCmd table
Dan pilih table nya dari pilihan yang no :2(table or stored procedure name)
Lalu copy kan yang ada di menu general(use connection string)
            Dan pastekan di listing program modul(db.open”…”)

Adapun Langkah-langkah koneksi ke database adalah sebagai berikut:

Langkah 1









Langkah 2







Langkah 3









Langkah 4


Tidak ada komentar:

Posting Komentar