Visual Basic'den Excel'e Bağlantı - 2 - Delinetciler Portal
+ Hemen Yorum Yap

Visual Basic'den Excel'e Bağlantı - 2

  1. Excel - Visual Basic ilişkilerine devam ediyoruz ve asıl konumuz olan "Visual Basic 'ten Excel'e kayıt" konusuna başlıyoruz. Öncelikle Excel'i başlatıp yeni bir çalışma kitabı açalım. Bu çalışma kitabının içersine yeni bir çalışma sayfası ekleyelim. Bu sayfanın adı "PersonelBilgi" olsun. Diğer çalışma sayfalarını silelim. Şimdi kayıt alanlarımızı belirleyelim. Alanlarımız aşağıdaki gibi olsun.


    Şimdi çalıma kitabını C: sürücüsünde "Personel" adlı klasörün içine "PersonelBilgi.xls" adıyla kaydedelim ve kapatalım. Artık kayıtları tutacağımız veritabanımız hazır hale geldi.

    Visual Basic'i açalım ve yeni bir standart Exe projesi oluşturalım. Bu projede kullanacağımız nesneler ve isimleri aşağıdaki gibi olsun.

    "Sıra No" olarak kullanacağımız textboxun "Enabled" özelliğini "False" olarak değiştirin. Çünkü burada sadece sıra numarasını görüntüleyeceğiz. Yani bilgi girişi olmayacak. Formun Son görüntüsü aşağıdaki gibi olacaktır. Bu projeyi C: sürücüsündeki "Personel" adlı klasöre kaydedin.

    Sıra geldi işin kod yazma kısmına. Tabi önceki bölümde de açıkladığım gibi Visual Basic 'e Excel'i tanıtmamız gerekiyor. "Project" mönüsünden "References" komutunu çalıştırıp "Microsoft Excel 10.0 Object Library" seçeneğini aktif hale getirelim. Herşey tamamlandı. Aşağıdaki kodları formun kod sayfasına yapıştırın.

    Not: Bu kodları yapıştırmadan kendiniz yazarsanız bazı şeyleri daha çabuk kavrayabilirsiniz.

    Private Sub Command1_Click()
    txtSira.Text = WorksheetFunction.Count(Range("A1:A65000")) + 1

    Do While Not IsEmpty(ActiveCell)
    ActiveCell.Offset(1, 0).Select
    Loop

    ActiveCell.Value = txtSira.Text
    ActiveCell.Offset(0, 1).Value = txtAd.Text
    ActiveCell.Offset(0, 2).Value = txtDYeri.Text
    ActiveCell.Offset(0, 3).Value = txtMaasi.Text
    MsgBox "Verileriniz Kaydedildi"
    ActiveWorkbook.Save
    txtSira.Text = WorksheetFunction.Count(Range("A1:A65000")) + 1
    txtAd.Text = ""
    txtDYeri.Text = ""
    txtMaasi.Text = ""
    txtAd.SetFocus
    End Sub

    Private Sub Command2_Click()
    Application.Quit
    Unload Me
    End Sub

    Private Sub Command3_Click()
    If txtAd.Text = "" Then
    MsgBox "Lütfen Ad Soyad kutusuna geçerli personel girin."
    Exit Sub
    End If

    Set adsoyad = Range("B2:B100").Find(txtAd.Text, _
    SearchDirection:=xlNext, MatchCase:=False)
    If adsoyad Is Nothing Then
    MsgBox "Aradığınız Ad ve Soyad'da kayıt bulunamadı"
    Exit Sub
    End If

    ilksatir = adsoyad.Row
    Set adsoyad = Range("B2:B100").FindPrevious(Range("B100"))
    sonsatir = adsoyad.Row
    Set adsoyad = Range(Cells(ilksatir, 2), _
    Cells(sonsatir, 2)).Find(txtAd.Text, _
    SearchDirection:=xlNext, MatchCase:=False)
    txtSira.Text = Cells(ilksatir, 1).Value
    txtAd.Text = Cells(ilksatir, 2).Value
    txtDYeri.Text = Cells(ilksatir, 3).Value
    txtMaasi.Text = Cells(ilksatir, 4).Value
    End Sub

    Private Sub Command4_Click()
    txtSira.Text = WorksheetFunction.Count(Range("A1:A65000")) + 1
    txtAd.Text = ""
    txtDYeri.Text = ""
    txtMaasi.Text = ""
    txtAd.SetFocus
    End Sub

    Sub form_load()
    KitapYolu = App.Path + "\PersonelBilgi.xls"
    Workbooks.Open (KitapYolu)
    Sheets("PersonelBilgi").Select
    Range("A1").Select
    txtSira.Text = WorksheetFunction.Count(Range("A1:A65000")) + 1
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Application.Quit
    End Sub

    Artık programı çalıştırıp kayıt girebilir ve kayıt arayabiliriz. Kodları adım adım açıklayalım.

    Formun Load Yordamı :

    KitapYolu = App.Path + "\PersonelBilgi.xls"
    KitapYolu isimli değişken ile kitabın yeri belirleniyor

    Workbooks.Open (KitapYolu)
    Çalışma kitabı açılıyor.

    Sheets("PersonelBilgi").Select
    Range("A1").Select
    Çalışma kitabındaki "PersonelBilgi" isimli sayfa seçiliyor ve bu sayfadaki A1 hücresi seçiliyor.

    txtSira.Text = WorksheetFunction.Count(Range("A1:A65000")) + 1
    txtSira isimli Text kutusuna çalışma sayfası özelliği olan Count (say) kullanılarak bir sıra numarası atanıyor.

    Private Sub Form_Unload(Cancel As Integer)
    Application.Quit
    End Sub
    Burası formun kapanış yordamıdır. Form herhangi bir şekilde kapanırken neler yapılacaksa buraya yazılır. Ben burada sadece "Application.Quit" kodlarını kullandım. Bunun anlamı "Uygulamadan Çık" tır. Tabi bu uygulama bizim yaptığımız uygulama değil, Excel uygulamasıdır. Eğer bunu yapmasaydık, Excel arka planda çalışır durumda olacaktı.

    Şimdi kaydet düğmesinin kodlarına bakalım.

    Do While Not IsEmpty(ActiveCell)
    Burada bir döngü kullandık. Bu döngü sıra numarası içindi. A1 hücresi dolu ise ;

    ActiveCell.Offset(1, 0).Select
    bir alttaki hücreyi seç.

    ActiveCell.Value = txtSira.Text
    ActiveCell.Offset(0, 1).Value = txtAd.Text
    ActiveCell.Offset(0, 2).Value = txtDYeri.Text
    ActiveCell.Offset(0, 3).Value = txtMaasi.Text
    MsgBox "Verileriniz Kaydedildi"
    ActiveWorkbook.Save
    Burada bütün textboxlardaki bilgilerimiz kayıt alanlarına yerleştiriliyor, mesaj kutusuyla kaydın tamamlandığı belirtiliyor ve çalışma kitabı kaydediliyor.

    Personel Çağır adlı komut düğmesinin kodlarını açıklayalım.

    If txtAd.Text = "" Then
    MsgBox "Lütfen Ad Soyad kutusuna geçerli personel girin."
    Exit Sub
    End If
    Eğer ismi yazacağımız kutucuk boş ise mesaj kutusu gönder ve yordamdan çık.

    Set adsoyad = Range("B2:B100").Find(txtAd.Text, _
    SearchDirection:=xlNext, MatchCase:=False)
    Burada adsoyad isimli bir kısaltma yaptık. Bu arayacağımız kriter ve bu kriter bulunduğu kayıt alanıdır.

    txtSira.Text = Cells(ilksatir, 1).Value
    txtAd.Text = Cells(ilksatir, 2).Value
    txtDYeri.Text = Cells(ilksatir, 3).Value
    txtMaasi.Text = Cells(ilksatir, 4).Value
    Son olarak arattığımız ismin diğer bilgilerini kutucuklara yerleştirdik.

    İşte bu kadar. Çok zor olmadığını gördünüz. Bu projenin dosyalarının indirmek için tıklayın.

    Tabi daha öncede söylediğim gibi kodları kendiniz yazarsanız olayı daha iyi kavramış olursunuz.

    Herkese çalışmalarında başarılar dilerim..

    Kaynak



     Konuyu Beğendin mi?
  2. 2012-11-13 #2
    Hocam anlatımınız için çok teşekkür ediyorum.Bir sorum olacaktı.Bu yolunu belirttigimiz ve shhetini seçtiğimiz excel belgesini görünecek şekilde açılsın istersek ne yapıyoruz.Ben bir buton hazırladım bu butona tıklayınca excel sayfası görünsün istiyorum.

  Okunma: 6659 - Yorum: 1 - Amp
Kullanıcı Oylaması: 0/5 - 0