Bizim bu konuda yazacağımız
Sql cümlesi:
"INSERT INTO T_GIRIS ( firmano, fattar, fatno )
SELECT [FORMS]![F_ILACALIM]![firmakutu] , [FORMS]![F_ILACALIM]![ffattar] , [FORMS]![F_ILACALIM]![ffatno]"
Burada ne diyoruz. INSERT INTO ekle demek, Bir tabloya
Sql kullanarak bir kayıt eklemek istediğimiz zaman
Sql cümlemiz "INSERT INTO" komutuyla başilamalı.
google çevirisi gibi yazalım
"Ekle T_GIRIS tablosuna (firmano,fattar,fatno) alanlarına
seçiyorum F_ILACALIM formunda firmakutu değerini, ffattar değerini, ffatno değerini"
Cümlede belirtilen ilk alana seçilen ilk değeri, ikinciye ikinci değeri v.b atar.
İlk değer firmano alanı ise select ten sonra yazdığınız ilk değer oraya atanır.
Atanacak alanlar ve seçilecek değerler eşit sayıda olmalı yoksa hata verir.
Yine atanacak alanın veri tipi ile seçilen değer aynı tipte olmalı. Sayı alana metin, metin alana başka bir tip atanmaması gerekir.
Bu
Sql cümlemizi bir değişkene atayıp o değişken olarak çalıştırcağız. Nasıl bir değişkene atamamız gerekir. Tabiki metin(string) olmalı.
o zaman "ekle" adını vereceğimiz bir değişken belirleyelim ve ona bu
Sql cümlesini atayalım.
Dim ekle as string ' komutuyla ben ekle adında bir string değişken kullanacağım haberin olsun diye accesse bildirimde bulunup accessi uyarıyoruz.
Sonra bunu çalıştıralım. Bunun içinde kontak anahtarı görevi gören bir komutumuz var.
Docmd.RunSql sqlcümlesi
sqlcümlesi DoCmd.RunSql komutunun çalıştıracağı cümle. Biz bu cümleyi ekle değişkenine atadığımız için
DoCmd.Run
Sql ekle
yazıyoruz.
Böylece kayıt yapılmış oluyor. Bir de kaydın yapıldığını bildiren bir mesaj çıkartarak kodumuzun son hali:
Private Sub fatkaydet_Click()
Dim ekle As String
ekle = "INSERT INTO T_GIRIS ( firmano, fattar, fatno )" _
& " SELECT [FORMS]![F_ILACALIM]![firmakutu] , [FORMS]![F_ILACALIM]!" _
& "[ffattar] , [FORMS]![F_ILACALIM]![ffatno]"
DoCmd.RunSQL ekle
MsgBox (" KAYIT TAMAM ")
End Sub
bu şekilde oldu. Bu normal şartlar altında, yani herşeyin doğru gittiği zaman kaydeder. Ama ya normal gitmezse;
İşte o zaman programımız hata verir ya da hatalı kayıt üretir. Burada normal gitmeyen ne olabilir?
Kullanıcı verilerden birini veya hiç birini girmez, boş kayıt eklemeye çalışır. Ya da fatura tarihine günümüz tarihinden ilerisi bir tarih girmeye çalışır. Bu durumları önlemek için programcılar hata denetimleri uygular. Biz bunları burada yapmayacağız. İleride bilgileriniz geliştikçe bunları eklersiniz.
Hatalar konusunda bilgi için
1.Link
2.Link
lere bakabilirsiniz.
Hımmm.. O zaman ADO kullanacağız. Ben şimdi onunla ilgili bilgileri hazırlayayım. Bir müddet yazmayacağım.
Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.