Sabtu, 31 Desember 2011

Menghitung Umur (ms sql)

Beda dgn di ms acces yg tinggal ketik : "select [tglawal]-[tglakhir] as umur from gatel"

tp klo query diatas dicoba di ms sql server tentu akan beda hasil nya

nie da fungsi buat ngitung umur di ms sql server:

==============================================================
CREATE FUNCTION GetUmur  (@DateOfBirth datetime, @DateNow datetime)
RETURNS varchar(20)
AS
BEGIN
   DECLARE @BirthTahun int, @BirthBulan int, @BirthHari int
   DECLARE @NowTahun int, @NowBulan int, @NowHari int
   DECLARE @AgeTahun int, @AgeBulan int, @AgeHari int
   DECLARE @Umur Varchar(20)

   --Tanggal Lahir
   SET @BirthTahun = DatePart(yy, @DateOfBirth)
   SET @BirthBulan = DatePart(m, @DateOfBirth)
   SET @BirthHari = DatePart(d, @DateOfBirth)

   --Tanggal Sekarang
   SET @NowTahun = DatePart(yy, @DateNow)
   SET @NowBulan = DatePart(m, @DateNow)
   SET @NowHari = DatePart(d, @DateNow)

   --Umur
   If @BirthBulan > @NowBulan
   BEGIN
      SET @AgeTahun =  @NowTahun - @BirthTahun - 1
      SET @NowBulan = @NowBulan + 12
   END
   ELSE
      SET @AgeTahun =  @NowTahun - @BirthTahun

   IF  @BirthHari > @NowHari
   BEGIN
       SET @AgeBulan = @NowBulan - @BirthBulan -1
       SET @NowHari = @NowHari + 30
   END
   ELSE
      SET @AgeBulan = @NowBulan - @BirthBulan

   SET @AgeHari = @NowHari - @BirthHari

   SET @Umur = ''
   IF @AgeTahun > 0
       SET @Umur = @Umur + RTrim(Cast(@AgeTahun As Char(2))) + 'Th '

   IF @AgeBulan > 0
       SET @Umur = @Umur + Rtrim(Cast(@AgeBulan As Char(2))) + 'Bln '

   IF @AgeHari > 0
       SET @Umur = @Umur +  RTrim(Cast(@AgeHari As Char(2))) + 'Hr'

   RETURN(@Umur)
END


====================================
klo mau manggil tinggal ketik query:
 Select dbo.GetUmur(@TanggalLahir, GetDate()) As Umur
========================================

TRIGGER (Transact-SQL)

Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE.
INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.

menurut MSDN, syntac dari trigger adalah sebagai berikut
Syntax

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
biar lebih mengerti, kita mulai dengan contoh.. jadi kita butuh membuat 2 tabel tersebut di SQL server 2005, script sebagai berikut

create table BARANG

(
BAR_ID int not null,
BAR_NAMA varchar(255) not null,
BAR_STOCK int null
default 0,
constraint PK_BARANG primary key (BAR_ID)
)
go
create table PEMBELIAN

(
PEM_ID int not null,
BAR_ID int null ,
PEM_JUMLAH int null ,
constraint PK_PEMBELIAN primary key (PEM_ID)
)
go
create index RELATION_FK on PEMBELIAN (BAR_ID)
go

alter table PEMBELIAN

add constraint FK_PEMBELIA_RELATION_BARANG foreign key (BAR_ID)
references BARANG (BAR_ID)
go
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (1,’AQUA’);

INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (2,’TOTAL’);
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (3,’AQUADES’); setelah anda menjalankan script tersebut, maka anda akan mempunyai 2 tabel, yaitu tabel barang dengan isi 3 buah data, dan tabel pembelian dengan data masih kosong.3 data di tabel barang tersebut secara defaut stocknya adalah 0
kemudian saatnya kita buat trigger sehingga ketika kita menambahkan data di tabel pembelian dengan jumlah pembelian barang tertentu, maka stock di tabel barang akan bertambah sesuai dengan barang yg dibeli, syntac trigger tersebut adalah sebagai berikut

create trigger tambahStockbarang on pembelian

for insert
as
update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id
arti dari kode tersebut adalah sebagai berikut
create trigger tambahStockbarang on pembelian
membuat trigger dengan nama tambahStockBarang dimana trigger tersebut akan terpicu jika ada perubahan di tabel pembelian


for insert
as
perubahan tersebut adalah penambahan(insert) di tabel pembelian , selain penambahan bisa juga diisi dengan perubahan(update) atau penghapusan(delete)
for disini juga bisa rubah isinya jadi after atau instead of . perbedaanya adalah waktu trigger dikerjakan, biasaya yg sering digunakan adalah for


update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id
ini adalah kode yg dikerjakan ketika kejadian trigger terpicu, kode diatas bertujuan merubah nilai bar_stock pada tabel barang dengan menambahkan nilai bar_stock yg sekarang dengan jumlah barang yg dibeli (pem_jumlah). perhatikan disini ada tabel yang bernama inserted, tabel tersebut merupakan tabel logika yg digunakan untuk menyimpan data yang memicu terjadinya trigger, dalam hal ini nilai data yg dimasukkan(insert) kedalam tabel pembelian, selain inserted, tabel logika lainnya adalah deleted, tabel logika ini digunakan untuk trigger yg terpicu dengan kejadian delete
kita coba masukkan kode berikut

INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (1,1,4);

INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (2,3,2);
INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (3,1,1);
arti kode tersebut
pem_id haruslah beda karena merupakan primary key
beli aqua(kode bar_id=1) sebanyak 4
beli aquades (kode bar_id=3) sebanyak 2
beli aqua lagi sebanyak 1

sehingga secara keseluruhan yg dibeli aqua sebanyak 5 dan aquades sebanyak 2
karena default nilai stock barang adalah 0, maka seharusnya nilai aqua 5 dan aquades 2 adalah jumlah stock barang sekarang ini


triger in mysql:
CREATE TRIGGER salary_trigger BEFORE UPDATE ON employee_table
REFERENCING NEW ROW AS n, OLD ROW AS o
FOR EACH ROW
IF n.salary o.salary THEN
END IF; ;

class excel connection


'//class

Namespace ExcelConnection
    Public Class ExcelConnection


#Region "Public Function(s)"

        Public Function ImportAttendence(ByVal PrmPathExcelFile As String, ByVal DataGridView1 As DataGridView)

            Dim MyConnection As System.Data.OleDb.OleDbConnection

            Try

                ''''''' Fetch Data from Excel

                Dim DtSet As System.Data.DataSet

                Dim MyCommand As System.Data.OleDb.OleDbDataAdapter


                MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; " & _
                                "data source='" & PrmPathExcelFile & " '; " & "Extended Properties=Excel 8.0;")

                ' Select the data from Sheet1 of the workbook.

                MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [sheet1$]", MyConnection)


                MyCommand.TableMappings.Add("Table", "Attendence")

                DtSet = New System.Data.DataSet

                MyCommand.Fill(DtSet)
                '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                DataGridView1.DataSource = DtSet.Tables(0)
                MyConnection.Close()

            Catch ex As Exception
                MyConnection.Close()
            End Try

        End Function

#End Region

    End Class
End Namespace

'//end class

'//preview in grid
 Private Sub Preview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Preview.Click
        Try
            Dim _Obj As New ExcelConnection.ExcelConnection
            _Obj.ImportAttendence(Txt_Path.Text, Me.DataGridView1)
        Catch ex As Exception

        End Try
    End Sub
'//++++++++++++++++++

baca tulis .ini or .txt file in .net


Imports System.IO


Public Class Form1

'''=======================

    Public Sub WriteContent(ByVal FullPath As String, _
    ByVal content As String)
         Dim fileWriter As StreamWriter
         Try
             fileWriter = New StreamWriter(FullPath)
             fileWriter.Write(content)
             fileWriter.Close()
         Catch x As Exception
             MsgBox(x.Message)
        End Try
     End Sub

    Public Function BacaBarisKe(ByVal FullPath As String, _
    ByVal baris As Integer)


        Dim fileReader As StreamReader


        Dim content As String = ""


        Dim i As Integer


        Try


            fileReader = New StreamReader(FullPath)


            For i = 1 To baris


                content = fileReader.ReadLine()


            Next
            fileReader.Close()


        Catch x As Exception


            MsgBox(x.Message)


        End Try


        Return content


    End Function
    Public Function BacaSeluruhFile(ByVal FullPath As String)


        Dim fileReader As StreamReader


        Dim content As String = ""


        Try


            fileReader = New StreamReader(FullPath)
            content = fileReader.ReadToEnd()


            fileReader.Close()


        Catch x As Exception


            MsgBox(x.Message)


        End Try


        Return content


    End Function


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim a As String
        a = BacaBarisKe("f:\cs.ini", 1)
    End Sub
End Class

Rabu, 27 Juli 2011

PROGRAM MULTI APLIKASI

Dalam program multi aplikasi ini kami tidak akan membuat proses program di dalam masing-masing form, karena yang menjadi inti pembicaraan adalah bagaimana cara membuat sebuah aplikasi yang terdiri dari beberapa project. Setelah anda memahami cara pembuatannya silakan anda mengembangkan program ini sesuai dengan kebutuhan sistem anda. Misalnya dalam aplikasi sistem akadamik, project dapat dibagi menjadi tiga bagian yaitu :
• Project penerimaan siswa baru
• Project pengolahan data nilai siswa
• Dan project pembayaran SPP

Membuat Project Induk

1. Buatlah sebuah project baru sebagai project induk
2. Ganti nama form1 dengan nama MenuUtama

Membuat Project Anak (Pertama)

3. Tambah project baru (Klik menu file >> add Project)
4. Klik Open
5. Tambah 2 buah form (klik menu project >> Add Form)
6. Di project kedua, Form1 ganti nama dengan menupembelian

 7. Di project kedua, Form2 ganti nama dengan pemasok

 Membuat Project Anak (Kedua)

8. Tambah project baru (klik menu file >> add Project)
9. Tambah 2 buah form
10. Di project ketiga, Form1 ganti nama dengan menupenjualan
11. Di project ketiga, Form2 ganti nama dengan pelanggan
 Mengubah Properti Project
12. Simpan semua objek (project, form,dan class module) berupa grup di sebuah folder tertentu
13. Pilih project2 (sebagai project anak)
14. Klik kanan project2
15. Pilih project properties
16. Ubah project types jadi activex.dll
17. Set startup object jadi none
18. OK
Membuat Class Module
19. Tambahkan class module caranya
20. Klik menu project
21. Add class module
22. Klik Open

23. Tulis coding berikut di class tersebut
Public Sub kedua()
MenuBeli.Show vbModal
End Sub

24. simpan di project2 dgn nama clsbeli
Membuat Project Preferences
25. Sertakan activex .dll project anak tsb ke dalam project induk
     Caranya :
26. Klik project1 (sebagai project induk)
27. Klik menu Project
28. Pilih preferences
29. Pilih project2 (sebagai project anak)
Mengintegrasikan Project Dengan Menu
30. Membuat menu di form induk
31. Klik menu tools
32. Pilih menu editor
33. Buatlah menu Pembelian, Penjualan dan Keluar
34. Hasil pembuatan menu terlihat seperti gambar berikut :
 35. Tambahkan coding di form induk :
Private Sub mnpembelian_Click()
Dim objbeli As New clsbeli
objbeli.kedua
Me.Show
End Sub


36. Pada project2 form MenuPembelian buatlah sebuah menu untuk memangil form pemasok,
begitu juga di project ketiga MenuPenjualan dibuat menu untuk memanggil form pelanggan.
37. Lakukan hal yang sama di project anak berikutnya (pada project3)
38. Hasil akhir pembuatan program mulri aplikasi terlihat pada gambar di bawah ini :
39. Jalankan program

repost from : Uus Rusmawan

Membuat ActiveX DLL (Dynamic Link Library) Pada Visual Basic 6.0

Membuat ActiveX DLL adalah suatu usaha untuk membuat program Anda lebih modular dan code-code
yang sering Anda gunakan sebaiknya Anda kumpulkan dan jadikan dalam sebuah DLL sehingga Anda
dapat menggunakannya kapan saja jika dibutuhkan. OK, sekarang kita mulai saja demo pembuatan
ActiveX DLL melalui Visual Basic ini.
  •  Buka Visual Basic Anda kemudian pilih menu File | New Project dan kemudian pilih ActiveX DLL
    seperti gambar dibawah dan kemudian tekan OK
  •  Visual Basic akan memberi workspace project template ActiveX DLL dengan sebuah class module
    default yang bernama Class1. Ganti nama class module tadi menjadi clsMain.

  •  Tambahkan sebuah form pada project DLL Anda dan beri nama frmHello. Oh ya jangan lupa ganti nama project ActiveX DLL ini menjadi vbdll



  • Tulis code berikut pada class module clsMain tadi: 
Option Explicit
Public stMyProperty As String
Public Sub Main_()
frmHello.Show vbModal
End Sub
Public Property Get MyProperty() As Variant
MyProperty = stMyProperty
End Property
Public Property Let MyProperty(ByVal vNewValue As Variant)
stMyProperty = vNewValue
End Property

  • Nah, pada DLL sederhana kita ini ceritanya kita akan membuat sebuah class clsMain yang di dalamnya
    terdapat method Main_ yang fungsinya memanggil form frmHello. Selain itu kita juga membuat sebuah
    property yang bernama MyProperty yang nantinya kita bisa mengisikan suatu nilai ke dalam property ini.Type dari property MyProperty adalah string.
     
  • Sampai disini maka ActiveX DLL kita sudah jadi. Sekarang simpan project ActiveX DLL ini dengan
    nama vbdll.vbp. Kemudian coba sekarang Anda compile menjadi DLL melalui menu File | Make
    vbdll.dll..
     
  • OK, sekarang kita harus me-registerkan DLL kita tadi ke Windows. Gimana caranya? Gampangggg,
    coba Anda masuk ke MS DOS Prompt, kemudian change directory menuju tempat dimana tadi Anda
    menyimpan atau mengcompile vbdll.dll. Nah kemudian ketikkan perintah berikut pada command prompt DOS.
  • regsvr32 vbdll.dll
    Jika sukses maka di layar akan muncul dialog seperti gambar di bawah:
  •  Sekarang ActiveX DLL vbdll.dll Anda sudah ter-register pada system Windows. Waktunya kita untuk
    menguji dan menggunakan DLL ini. Buka kembali Visual Basic Anda dan buatlah project baru melalui
    File | New Project, kemudian pilih Standard EXE. Letakkan sebuah control CommandButton pada form dan kemudian ketik code berikut pada event Click pada CommandButton tadi:
Option Explicit
Private Sub Command1_Click()
Dim obj
'create sebuah instance dari class vbdll.clsMain
Set obj = CreateObject("vbdll.clsMain")
MsgBox "Sekarang memanggil method Main_ dari vbdll.dll"
'panggil method Main dari vbdll.dll
obj.Main_
MsgBox "Sekarang mengisi property" & _
" MyProperty pada vbdll.dll " & _
"dengan string 'TEST'"
'isi MyProperty dengan string 'TEST'
obj.MyProperty = "TEST"
MsgBox "Isi dari property MyProperty " & _
"sekarang adalah " & obj.MyProperty
'free instance obj dari memory
Set obj = Nothing
End Sub

Download Contoh DISINI

repost from : ilmukomputer.com

Jenis Jenis project Visual Basic 6.0

Visual Basic 6.0 menyediakan 13 jenis project yang bisa dibuat seperti terlihat pada gambar 1.3 di atas. Ada beberapa project yang biasa digunakan oleh banyak pengguna Visual Basic, antara lain:
 1. Standard EXE: Project standar dalam Visual Basic dengan komponen-komponen standar. Jenis project
     ini  sangat sederhana, tetapi memiliki keunggulan bahwa semua komponennya dapat diakui oleh semua 
     unit komputer dan semua user meskipun bukan administrator. Pada buku ini akan digunakan project  
     Standard EXE ini, sebagai konsep pemrograman visualnya.
2. ActiveX EXE: Project ini adalah project ActiveX berisi komponen-komponen kemampuan intuk
    berinteraksi dengan semua aplikasi di sistem operasi windows.
3. ActiveX DLL: Project ini menghasilkan sebuah aplikasi library yang selanjutnya dapat digunakan oleh
    semua aplikasi di sistem operasi Windows.
4. ActiveX Control: Project ini menghasilkan komponen-komponen baru untuk aplikasi Visual Basic yang 
    lain.
5. VB Application Wizard: Project ini memandu pengguna untuk membuat aplikasi secara mudah tanpa harus
    pusing-pusing dengan perintah-perintah pemrograman.
 6. Addin: Project seperti Standard EXE tetapi dengan berbagai macam komponen tambahan yang
      memungkinkan kebebasan kreasi dari pengguna.
 7. Data project: Project ini melengkapi komponennya dengan komponen-komponen database. Sehingga
     bisa dikatakan project ini memang disediakan untuk keperluan pembuatan aplikasi database.
 8. DHTML Application: Project ini digunakan untuk membuat aplikasi internet pada sisi client (client side)
     dengan fungsi-fungsi DHTML.
 9. IIS Application: Project ini menghasilkan aplikasi internet pada sisi server (server side) dengan komponen-
     komponen CGI (Common Gateway Interface).