Would you like to react to this message? Create an account in a few clicks or log in to continue.

    Ayrıntılı Visual Basic Veri Tabanı İşlemleri

    avatar
    paindeath


    Mesaj Sayısı : 9
    Kayıt tarihi : 08/03/13

    Ayrıntılı Visual Basic Veri Tabanı İşlemleri Empty Ayrıntılı Visual Basic Veri Tabanı İşlemleri

    Mesaj tarafından paindeath Perş. Mart 21, 2013 12:59 pm

    ACCESS'DEN VERİ AKTARIMI ÖRNEĞİ




    Veri tabanından bilgi aktarımı için kullanacağımız komutlar OpenDatabase,
    ve OpenRecordset'dir. Veri tabanı (Db) ve kayıt kümesi (Rs) genel tanımları
    yapıldıktan sonra, bu tanımlardan veritabanı için OpenDatabase tanımı, kayıt
    kümesi için de Open Recordset tanımı yapılmalıdır. OpenRecordset tanımında
    kullanılan "snapshot" dosya açıldığında aktif olan kaydın bir
    kopyasını alır. Bu örnekte tek kayıtlık bir veritabanı kullanılacak ve o bilgi
    görüntülenecektir.





    Tüm kayıtların görüntülenmesi işlemi bir döngü ile aktif kayıt
    ilerletilerek yapılmalıdır.





    Visual Basic Programı'na Access veritabanından veri aktarımı
    gerçekleştirmek için öncelikle bir veri tabanı hazırlamamız gereklidir.





    Access Veri tabanı hazırlama işlemleri:


    1.
    Access'de
    "c:\MyDocuments" dizini altına "ornek.mdb" dosyası açınız.


    2.
    Tables/New/Design seçenekleri ile
    tablo tasarımı penceresini aktif hale getiriniz.


    3.
    "Field Name" kolonuna
    "Yazi" yazınız.


    4.
    "Data Type" kolonunda
    "Text" seçiniz.


    5.
    Tabloyu kapatınız ve saklama
    penceresi geldiğinde tabloyu "tblornek" adı ile saklayınız.


    6.
    Ana anahtar seçimi için
    "No" yanıtlayınız.


    7.
    Tablonuzu "Open" ile
    açınız. İlk satıra "Veri Aktarım Denemesi" yazınız.


    8.
    Access'den çıkınız.





    Visual Basic'de ise aşağıdaki işlemleri gerçekleştiriniz:


    1.
    Yeni bir proje açınız. Projeyi
    "ornek" olarak yine "c:\MyDocuments" dizinine saklayınız.


    2.
    Form_Load Prosedürü'ne eklenecek
    kod:


    Dim Db
    as Database


    Dim Rs
    as Recordset


    3.
    Formun üzerine bir etiket ve 2
    komut düğmesi yerleştiriniz.


    4.
    Etiket özellikleri:


    Caption = (Boş
    olacak)


    Name = Label1 (Aynı kalacak)


    BorderStyle = 1


    Appearance = 0


    5.
    Birinci komut düğmesi özellikleri:


    Caption = Veri Al


    Name = Command1 (Aynı kalabilir)


    6.
    İkinci komut düğmesi özellikleri:


    Caption = Cikis


    Name = Command2 (Aynı kalabilir)


    7.
    Birinci komut düğmesi Click_Prosedürü


    Set Db =
    OpenDatabase("c:\MyDocuments\ornek.mdb")


    Set Rs = Db.OpenRecordset("tblornek",dbopensnapshot)


    Label1.Caption = Rs!Yazi


    8.
    İkinci komut düğmesi
    Click_Prosedürü:


    End


    9.
    Project/References menü
    seçeneğinden sonra liste üzerinde "Microsoft DAO 3.51 Object Library"
    seçeneğini işaretleyiniz.


    10.
    Programı saklayınız.









    Ayrıntılı Visual Basic Veri Tabanı İşlemleri Image012


    Programı çalıştırdıktan sonra "Veri Al"
    düğmesine bastığınızda Şekil-9'daki görüntü oluşacaktır.



    Şekil-9 Veri Tabanından Veri Aktarım Örneği






    VERİ TABANINDA ARAMA YAPMA ÖRNEĞİ




    Bir kayıt bilgisinin veri tabanında olup olmadığını belirlemek için arama
    işlemi yapmanız gerekmektedir. Bu işlem için öncelikle aranacak bilginin bir
    yazı kutusu ile kullanıcıdan alınması daha sonra da veri tabanında arama
    yapılması gerekmektedir. Bilginin bulunup bulunmadığı bilgisi yine yazı kutusu
    ile kullanıcıya verilebilir.





    Arama için yapacağınız işlemler aşağıdaki gibidir:


    1.
    "ornek.mdb"
    veritabanına "deneme" ve "veri aktarim" olmak üzere iki
    adet kayıt daha giriniz.


    2.
    "ornek.frm" üzerine bir
    yazı kutusu ekleyiniz, "Text" özelliği boş olsun.


    3.
    "ornek.frm" üzerine bir
    komut düğmesi ekleyiniz, "Caption" özelliği ara olsun. Bu
    komuta aşağıdak prosedürü ekleyiniz.


    Private Sub Command3_Click()


    Set Db = OpenDatabase("c:\bg\telif\vb\ornek.mdb")


    Set Rs = Db.OpenRecordset("tblornek",
    dbOpenSnapshot)


    Do While Not Rs.EOF


    If Text1.Text = Rs!Yazi Then


    Text1.Text = "Bulundu"


    Else:


    Rs.MoveNext


    End If


    Loop


    If Text1.Text <> "Bulundu" Then Text1.Text =
    "Bulunamadi"


    End Sub


    4.
    Programı çalıştırdıktan sonra yazı
    kutusuna "Deneme" girip "Ara" düğmesini tıklarsanız yazı
    kutusu üzerine "Bulundu" yazısı görüntülenecektir. Eğer "Ornek"
    girip yine "Ara" düğmesini tıklarsanız bu kez de
    "Bulunamadı" yazısı görüntülenecektir.













    VERİ RAPORU YARATMA




    Veri raporu yaratma işlemi için
    öncelikle veri alanı tanımlamaları yapılmalıdır.





    Veri Bağlantısı Tanımlamaları


    1.
    Project/Add Data Environment
    (Project/Components/Designers/Data Environment ya da Project/More Activex
    Designers/Data Environment) tıklanır.


    2.
    Açılan "Data Environment" penceresindeki
    "Connection1" üzerinde farenin sağ tuşu tıklanarak
    "Properties" seçilir.


    3.
    "Data Link Properties" diyalog kutusu
    üzerinde "Microsoft Jet 3.51 OLE DB Provider" tıklanır.


    4.
    "Next" düğmesi tıklanarak
    "Connection" kısmına geçilir.


    5.
    "Use data source name" yazı kutusu
    yanındaki (…) düğmesi tıklanarak Access veri tabanı seçildikten sonra
    kullanacağınız veri tabanı seçilir.


    6.
    "Test connection" tıklanarak veri
    tabanına erişim yapılıp yapılamadığı denetlenir.





    Veri Tabanı Tanımlamaları


    1.
    "Connection1" üzerinde farenin sağ tuşu
    tıklanarak "Add Command" seçilir.


    2.
    Eklenen "Command1" üzerinde sağ tuş
    tıklanarak "Properties" seçilir. Açılan pencerenin
    "General" kısmında "Command Name" ile bir isim atanır,
    "Connection" ile istenilen bağlantı seçilir (birden fazla bağlantı
    olduğu durumlarda kullanılmalıdır), "Database Object" ile verinin
    tablo olduğu belirtilir, "Object Name" üzerinden tablo ismi seçilir.
    (Hastane veri tabanı üzerinde kimlik tablosu gibi)


    3.
    Eğer bu veri tabanına ilişkili bir veri tabanı var
    ise bu "Add Child Command" ile gerçekleştirilir. Diğeri gibi isim ve
    tablo ismi tanımlamaları yapıldıktan sonra "Relation" ile ilişki
    tanımı yapılır. (Hastane veri tabanı üzerinde vizite tablosu, kimlik-hastakod
    ile vizite-hastakod ilişkisi gibi)





    Veri Raporu Yaratma


    1.
    Project/Add Data Report seçilir. Ekrana
    "Access" benzeri bir rapor ortamı gelir.


    2.
    "Properties" penceresi üzerinde
    "Data source" için önceden tanımlanan "Data Environment",
    "Data Member" için ise tanımlanan veri tabanı girilir. İstenirse
    raporun ismi değiştirilebilir.


    3.
    "Data Report" penceresi üzerinde farenin
    sağ tuşu tıklanarak "Retrieve Structure" seçilir. Bu işlem otomatik
    olarak veri alanlarını tanımlar.


    4.
    Daha sonra "Data Environment" penceresi
    üzerinden alanlar "Data Report" üzerine tıklanıp sürüklenerek eklenir
    ve istenilen biçimde yerleştirilir.





    Yaratılan veri raporları bir
    komut düğmesine eklenecek rapor_ismi.show
    ile çağırılabilir. Gösterilen rapor üzerinde yazdırma düğmesi bulunduğu için
    ayrıca yazdırma komutu eklemeye gerek yoktur.







    HASTANE VERİ TABANI UYGULAMASI




    HASTANE VERİ TABANI


    Veri tabanı üzerinde Data1
    (hastane-kimlik) ve Data2 (hastane-vizite) nesneleri "visible.false"
    olarak bulunmaktadır.






    Ayrıntılı Visual Basic Veri Tabanı İşlemleri Image013





    (General Declaration)


    Public son1 As Integer


    Dim son2 As Integer


    Public sayi As Integer





    Sub ilkform()


    cmdileri.Visible = True


    cmdgeri.Visible = True


    cmdbas.Visible = True


    cmdson.Visible = True


    cmdekle.Visible = True


    cmdrapor.Visible = True


    cmdguncelle.Visible = True


    cmdbul.Visible = True


    cmdcikis.Visible = True


    cmdiptal.Visible = False


    End Sub





    Public Sub goster()


    txtad.Text =
    Data1.Recordset("ad")


    txtsoyad.Text =
    Data1.Recordset("soyad")


    txthastakod.Text =
    Data1.Recordset("hastakod")


    Data2.Recordset.MoveFirst


    liste(0).Clear


    liste(1).Clear


    liste(2).Clear


    endx = 0


    Do While endx = 0


    Do While Not Data2.Recordset.EOF


    If Data1.Recordset("hastakod")
    <> Data2.Recordset("hastakod") Then


    Data2.Recordset.MoveNext


    Else


    endx = 1


    varx =
    Data2.Recordset("hastakod")


    vary =
    Data2.Recordset("hastakod")


    Do While varx <> 0


    Do While vary = varx


    liste(0).AddItem
    (Data2.Recordset("protokolno"))


    liste(1).AddItem
    (Data2.Recordset("tarih"))


    liste(2).AddItem
    (Data2.Recordset("tani"))


    Data2.Recordset.MoveNext


    If Data2.Recordset.EOF = True Then


    varx = 0


    vary = 1


    Else


    vary = Data2.Recordset("hastakod")


    End If


    Loop


    varx = 0


    Loop


    End If


    Loop


    Loop


    End Sub





    Sub ekledugkaldir()


    cmdileri.Visible = False


    cmdgeri.Visible = False


    cmdbas.Visible = False


    cmdson.Visible = False


    cmdekle.Visible = False


    cmdrapor.Visible = False


    cmdguncelle.Visible = False


    cmdbul.Visible = False


    cmdcikis.Visible = False


    cmdiptal.Visible = True


    End Sub








    Private Sub bul_Click()


    Data1.Recordset.MoveFirst


    sayi = 1


    endx = 0


    Do While endx = 0


    If Data1.Recordset("hastakod")
    <> bul.Text Then


    Data1.Recordset.MoveNext


    sayi = sayi + 1


    Else


    endx = 1


    goster


    End If


    Loop


    End Sub





    Private Sub cmdbas_Click()


    Data1.Recordset.MoveFirst


    goster


    sayi = 1


    End Sub





    Private Sub cmdbul_Click()


    soyadx = txtsoyad.Text


    bulx = 0


    bul.Clear


    Data1.Recordset.MoveFirst


    Do While Not
    Data1.Recordset.EOF


    If Data1.Recordset("soyad") =
    soyadx Then


    bul.AddItem
    (Data1.Recordset("hastakod"))


    Data1.Recordset.MoveNext


    bulx = 1


    Else


    Data1.Recordset.MoveNext


    End If


    Loop


    If bulx = 0 Then


    MsgBox ("bulamadim.")


    Else


    bul.Text = bul.List(0)


    bul.Visible = True


    txtbul.Visible = True


    txtbul.Text = "soyad =" + soyadx


    End If


    End Sub





    Private Sub cmdcikis_Click()


    End


    End Sub





    Private Sub cmddegtamam_Click()


    Data1.Recordset.Edit


    Data1.Recordset("Ad")
    = txtad.Text


    Data1.Recordset("Soyad")
    = txtsoyad.Text


    Data1.Recordset.Update


    Data1.Refresh


    cmddegtamam.Visible = False


    Data1.Recordset.Move (sayi - 1)


    ilkform


    goster


    End Sub





    Public Sub cmdekle_Click()


    Ekle.Show


    Hastane.Hide


    son1 = son1


    End Sub





    Private Sub cmdgeri_Click()


    If sayi <> 1 Then


    Data1.Recordset.MovePrevious


    goster


    sayi = sayi - 1


    Else


    MsgBox ("Kayit basina gelindi!")


    End If


    End Sub





    Private Sub cmdguncelle_Click()


    ekledugkaldir


    cmddegtamam.Visible = True


    End Sub





    Private Sub cmdileri_Click()


    If sayi <> son1 Then


    Data1.Recordset.MoveNext


    goster


    sayi = sayi + 1


    Else


    MsgBox ("Kayit sonuna gelindi!")


    End If


    End Sub





    Private Sub cmdiptal_Click()


    goster


    cmdekletamam.Visible = False


    cmddegtamam.Visible = False


    ilkform


    goster


    End Sub





    Private Sub cmdrapor_Click()


    DataReport1.Show


    End Sub





    Private Sub cmdson_Click()


    Data1.Recordset.MoveLast


    goster


    sayi = son1


    End Sub





    Private Sub Form_Load()


    Data1.Refresh


    Data2.Refresh


    Data1.Recordset.MoveLast


    son1 =
    Data1.Recordset.RecordCount


    Data2.Recordset.MoveLast


    son2 =
    Data1.Recordset.RecordCount


    Data1.Recordset.MoveFirst


    sayi = 1


    goster


    End Sub





    EKLE FORMU






    Ayrıntılı Visual Basic Veri Tabanı İşlemleri Image014





    Public Sub cmdekletamam_Click()


    Hastane.Data1.Recordset.AddNew


    Hastane.Data1.Recordset("Ad")
    = txtad.Text


    Hastane.Data1.Recordset("Soyad")
    = txtsoyad.Text


    Hastane.son1 = Hastane.son1 + 1


    Hastane.Data1.Recordset("Hastakod")
    = Hastane.son1


    Hastane.Data2.Recordset.AddNew


    Hastane.Data2.Recordset("Hastakod")
    = Hastane.son1


    Hastane.Data2.Recordset("protokolno")
    = txtprot.Text


    Hastane.Data2.Recordset("tarih")
    = txttarih.Text


    Hastane.Data2.Recordset("tani")
    = txttani.Text


    Hastane.Data1.Recordset.Update


    Hastane.Data2.Recordset.Update


    Hastane.Data1.Refresh


    Hastane.Data2.Refresh


    Hastane.goster


    Hastane.sayi = 1


    Hastane.Show


    Ekle.Hide


    End Sub





    Private Sub cmdiptal_Click()


    Hastane.Show


    Ekle.Hide


    End Sub





    Private Sub Form_Load()


    txtad.Text = ""


    txtsoyad.Text = ""


    txtprot.Text = ""


    txttani.Text = ""


    txttarih.Text = ""


    End Sub

      Forum Saati Paz Mayıs 19, 2024 9:12 pm