2-EXCEL VBA İLE SQL NETSİS DATABASE VERİTABANI İŞLEMLERİ KULLANARAK PROGRAM YAPMA (ADODB) 
Excel VBA UserForm ile Netsis'de Stok Kart Açılması
Bu yazımızda da, daha önce oluşturduğumuz bağlantı alt yapısıyla hazırladığımız Stok Kart Formu üzerinde bulunan butonlarımızdan STOK KARTI AÇ ile Netsis’de Stok Kart açma işlemini pratik ve hızlı bir şekilde sağlamaya çalışalım.
İlk olarak Stok Kodu konrol metotumuzu Modül üzerinde aşağıdaki gibi bir kodlama ile sağlayalım.
Daha Sonra Form üzerinde STOK KARTI AÇ Butonuna tıklayarak CommanButton1_Click Event’ine (olayına) aşağıdaki gibi kodlarımızı yazalım.
Private Sub CommandButton1_Click()
Call StokKartVarMi 'Bu metot ile açılacak yeni Stok Kodunun Sistemde olup olmadığı kontrolü yapılır.
If Sheets("Parametre").Range("J20").Value = 1 Then
MsgBox ("Stok Kodu Tanımlı!! Yeniden Kart açamazsınız!!"), vbCritical
Exit Sub
Else
If TextBox2.Value = "" Or TextBox10.Value = "" Or TextBox11.Value = "" Or TextBox15.Value = "" Or TextBox16.Value = "" Then
MsgBox ("Sarı Renkli Alanlar Boş Geçilemez!"), vbCritical
Exit Sub
Else
sor = MsgBox("Yeni Stok Kartı açılacak, Emin misiniz?", vbYesNo)
If sor = vbNo Then
Exit Sub
Else
On Error GoTo Hata
End If
With frm_StokKart
.TextBox4.Value = "18"
.TextBox5.Value = "18"
.TextBox12.Value = "0"
.TextBox13.Value = "0"
.ComboBox1.Value = "AD"
Dim stokkodu, stokadi, ureticikd, kod3, kod4, kod5, grpkd, ingisim, olcubr, kod1, kod2, u As String
Dim KDV As Integer
KDV = .TextBox4.Value
stokkodu = .TextBox1.Value
stokadi = .TextBox2.Value
ureticikd = .TextBox10.Value
kod1 = .TextBox12.Value
kod2 = .TextBox13.Value
kod3 = .TextBox14.Value
kod4 = .TextBox15.Value
kod5 = .TextBox16.Value
grpkd = .TextBox11.Value
ingisim = .TextBox3.Value
olcubr = .ComboBox1.Value
u = Sheets("Parametre").Range("E12").Value
Call SqlBaglantiAc
strSQL = "INSERT INTO TBLSTSABIT (MUH_DETAYKODU,SUBE_KODU,ISLETME_KODU,STOK_KODU,STOK_ADI,SATIS_FIAT1,SATIS_FIAT2,SATIS_FIAT3,SATIS_FIAT4,ALIS_FIAT1,KDV_ORANI,ALIS_KDV_KODU,GRUP_KODU,URETICI_KODU,KOD_4,KOD_5,KOD_3,OLCU_BR1,BARKOD1,BARKOD2,BARKOD3,KOD_1,KOD_2)"
strSQL = strSQL + " VALUES ('1','-1','1','" & stokkodu & "', dbo.TURKCE(N'" & stokadi & "')"
strSQL = strSQL + ",0,0,0,0,0,'" & KDV & "','" & KDV & "','" & grpkd & "','" & ureticikd & "',dbo.TURKCE(N'" & kod4 & "'),dbo.TURKCE(N'" & kod5 & "'),Null,'" & olcubr & "',Null,Null,Null,'" & kod1 & "','" & kod2 & "')"
strSQL = strSQL + " INSERT INTO TBLSTSABITEK (STOK_KODU,TUR,KAYITTARIHI,KAYITYAPANKUL,INGISIM,KULL1S,KULL2S,KULL3S,KULL4S,KULL5S, KULL6S, KULL7S, KULL8S, KULL1N, KULL2N, KULL3N, KULL4N, KULL5N, KULL6N, KULL7N, KULL8N)"
strSQL = strSQL + " VALUES ('" & stokkodu & "','D'," & "GETDATE()" & ",'" & u & "','" & ingisim & "',Null,Null,Null,Null,Null,0,0,0,0,0,0,0,0,Null,Null,Null)"
'Sheets("kontrol").Range("A37").Value = strSQL ---> (Bu kontrol ile SQL sorgu cümlesi alınarak SQL cümle yapısında hata kontrolü yapılabilir)--
rs.Open strSQL, cn
Sheets("kontrol").Range("A35").CopyFromRecordset rs
Call SqlBaglantiKapat
End With
Hata:
MsgBox Err.Description
End If
MsgBox ("Yeni Stok Kartı Açılmıştır.." & stokkodu & " - " & stokadi & ""), vbInformation
End If
End Sub
Bu şekilde kodlarımızı yazdıktan sonra Debug işlemi için Üst menüden Compile VBAProject seçeneği ile kod hatalarını veya referans eksikliklerini tespit ederek düzeltmeliyiz.
Şimdi de bir deneme stok kodu açmak için formumuzu çalıştıralım. Aşağıdaki gibi bir sonuç almanız için ayrıca dikkat edilmesi gereken bazı zorunlu alanların kullanıcı tarafından ilgili TextBox (Zemini Sarı olan alanlar) alanlarına yazılmasıdır. Aksi takdirde zaten kodlarımızda detaylara dikkat ederseniz bu konuda da bir kontrol yapıldığı ve kullanıcıya uyarı yapacağı görülebilir.
STOK KART AÇ butonuna tıklanınca aşağıdaki gibi bir uyarı mesajı ile onay alıyoruz.
Aşağıdaki gibi bir mesaj gelecek bu mesaja takılmayalım. Tamam diyerek geçiyoruz.
Son olarak Stok Kartımızın açıldığına dair mesajı alıyoruz ve kontrolümüzü Stok Kart Formu üzerinden ve SQL databasemiz üzerinden kontrolünü yapıyoruz.
Yorum görüşlerinizi yazabilirsiniz..
Başka bir makalede görüşmek üzere..
Adnan Bulut