ForumTR Sunar: EFES Online. Çok Kullanıcılı Çevrimiçi Dev Oyun. Tamamen Ücretsiz Olan EFES'e hemen üye olun.
Forum TR
Go Back   Forum TR > Programlama Dilleri > Programlama > visual basic
Üye Ol Bloglar Arama Sosyal Gruplar Forumları Okundu Yap
ForumTR'ye Reklam Vermek İçin Tıklayınız: network@frmtr.com

Visual Basic'de Veri Tabanı { Düzenleme By ForgeR }

Programlama Kategorisinde ve visual basic Forumunda Bulunan Visual Basic'de Veri Tabanı { Düzenleme By ForgeR } Konusunu Görüntülemektesiniz => Veri Tipleri Integer: Visual Basic’te tam sayi degiskenleri tanimlamak için kullanilir. Hafizada 2 byte yer kaplarlar. Alabilecegi deger araligi -32768 ...

Cevapla
 
Konu Araçları
Eski 06-04-06, 01:40   #1
● 100 Yaşında Mutlu Ol ●
 
Giriş Tarihi: 18-05-2005
Yer: OBSCURE
Mesajlar: 3,030
Rep Puanı: 1549603
BaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: Sıfır
Rep Gücü: 15584
5 Visual Basic'de Veri Tabanı { Düzenleme By ForgeR }



Veri Tipleri

Integer: Visual Basic’te tam sayi degiskenleri tanimlamak için kullanilir. Hafizada 2 byte yer kaplarlar. Alabilecegi deger araligi -32768 ile +32767 arasindadir.DefInt bildiri deyimi ile tanimlanabilirler. Ayrica bir degiskenin sonunda % karakteri bulunuyorsa bu degisken integer tipindedir.

Örnek :
Private Sub Form_Load()
Dim Maas As Integer
DefInt A-C
Oran% = 100
A_sayi = 100
B_sayi = Oran*A_sayi
C_sayi = B_sayi + A_sayi - 1000
Maas= 32767
End Sub

Eger burada tanimlanan degiskenlere daha büyük sayilar atanirsa overflow olusur.
Long : Daha büyük bir aralikta integer yani tamsayi tanimlamak için kullanabilecegimiz bir veri tipidir. Hafizada 4 byte yer kaplar. Kullanilabilecek uç degerler +2,147,483,647 ile -2,147,483,648 dir. Long tipinde bir degisken tanimlamak için DefLng bildirimini veya degisken sonunda & karakterini kullanabiliriz.

Örnek :
Private Sub Form_Load()
DefLng A-B
Bölüm=50000
cikan&=600000
Kalan& = (cikan / Bölüm ) * 10000
End Sub

Single :Tam sayi olmayan küsüratli sayilar için kullanabilecegimiz bir veri tipidir. Kayan-noktali sayi olarak isimlendirilir. Single tipindeki veriler bellekte 4 byte yer kaplarlar. Nekatif sayilar için alabilecegi aralik -3.402823E38 ile -1.401298E-45 ,pozitif sayilar için alabilecegi aralik 1.401298E-45 ile 3.402823E38 arasindadir.Single tipinde veri tanimlamak için DefSgn bildirimi veya degisken sonuna ! karakteri konur. 7 haneye kadar hassastir.Daha sonrasi yuvarlatilir.

Örnek :
Private Sub Form_Load()
DefSgn A-B
Bölüm=50000
Cikan!=600000
End Sub


Double : Visual Basic’te kullanilabilecek en büyük sayisal degerlerin veri tipidir. Hafizada 8 byte yer kaplarlar. 16 haneye kadar hassastirlar. Maximum alabilecegi degerler pozitif sayilar için 4.94065645841247E-324 ile 1.797693134862232E308 , nekatif sayilar için de -1.797693134862232E308 ile -4.94065645841247E-324 arasindadir. DefDbl bildirimi veya # sembölü ile double tipinde degiskenler tanimlanabilir

Örnek :
Private Sub Form_Load()
DefDbl A-K
Dari=50000
Bugday=600000
Arpa=340.56
End Sub

Currency : Sayisal tipdeki veriler için tanimlanmis özel bir veri tipidir.Hafizada 8 byte yer kaplarlar. 4 hane ondalik kismi olmak üzere toplam 19 haneden olusur.(nokta hariç) Alabilecegi maximum degerler -922,337,203,685,477.5808 ile 922,337,203,685,477.5807 arasindadir. @ sembolü veya DefCur bildirimi ile Currency tipinde degisken’ler tanimlanabilirler.

Örnek :
Private Sub Form_Load()
Dim Maas As Currency , Borc As Currency
Maas = 500000000
Borc = 68000000
Zayi@ = 340000.56
End Sub

Date : Tarih türündeki bilgileri kullanmak için olusturulmus bir veri tipidir. Hafizada 8 byte yer kaplarlar. 1 Ocak ile 31 Aralik 9999 arasindaki tarihleri kullanabilirsiniz. DefDate bildirisi ile tarih türünde degiskenler tanimlayabiliriz.

Örnek :
Private Sub Form_Load()
Dim Dogum_tarihi As Date , Evlenme_Tarihi As Date
Dogum_tarihi =#Dec,9,1977#
Evlenme_Tarihi=#May,15,1998#
End Sub

Boolean :Mantiksal veri tipleri için kullanilir. Iki seçenekten birisini alabilir.Bunlar True veya False degerleridir. Bellekte 2 byte yer isgal ederler.Boolean tipindeki bir degiskeni tanimlamak için DefBool sözcügü kullanilir.

Örnek :
Private Sub Form_Load()
Dim Durum As Boolean , Duyum As Boolean
Durum = True
Duyum = False
End Sub
Byte : O ile 255 arasindaki tamsayilari ifade etmek için kullanilabilecek veri tipidir.DefByte deyimi ile byte tipinde degiskenler tanimlanabilir.

Örnek :
Private Sub Form_Load()
Dim Durum As Byte , Duyum As Byte
Durum =23
Duyum = 143
End Sub

String : Metin türü bilgileri saklamak için kullanilabilecek veri türüdür. 16 bitlik versiyonda 0 ile 65538 arasinda , 32 bitlik versiyonda ise 0 ile 2,000,000,000 arasinda karakter alabilir. String türünde degisken tanimlamak için Defstr veya $ sembolü kullanilir.

Örnek :
Private Sub Form_Load()
Dim Adi As String , Soyadi As String
Adi ="Kemal"
Soyadi = "Tas"
No$="1323970067"
End Sub

Variant : Bu tipte tanimlanmis bir degiskene herhangi bir tip’te veri yüklenebilir.Yani ne tür bir veri girecegimizi bilmedigimiz degiskenleri Variant tipinde tanimlamaliyiz. Bu tür degiskenler hafizada 16 byte tan fazla yer kaplarlar. DefVar bildiri sözcügü ile Variant türünde degiskenler tanimliyabiliriz. Variant türünde degiskenler tanimlamak fazla kullanisli degildir.Çünki hafizada fazla yer kaplarlar.

Örnek :
Private Sub Form_Load()
Dim Ad As Variant , Maas As Variant , Tel As Variant
Dim Dogum_tarihi As Variant
Ad="Ahmet Aydın"
Maas=200000
Tel="500-45-00"
Dogum_tarihi=#Apr,3,1970#
End Sub


Veri Yapıları

Const : Bunlar program içinde degeri degistirilemeyen sabitlerdir. Public ve Private tipinde sabitler tanimlanabiliilir.
Public sabitlere tüm modüller içinden ulasilabilir.
Private türündeki sabitler ise sadece tanimlandiklari modül içersinde geçerlidirler.Ayrica Visual Basic içinde tanimlanmis çok sayida sabit vardir. Bunlara CONSTANT.TXT dosyasini açarak inceleyebiliriz.

Örnek :
Const sehir="Istanbul"
Const Ulke="Turkey"
Const posta_kodu=34650
Const tek_kod=212
Type - End Type Yapisi :

Type yapisini kullanarak programici farkli veri tiplerini kullanarak kendi veri yapisini olusturabilir. Bu C deki Struct yapisina benzetilebilir. Bu yeni veri tipine record adi verilir. Herhangi bir modülün Declarations kisminda asagidaki gibi bir tanimlama yapabiliriz.

Örnek :
Type Ogrenci Ad As String *10
Soyad As String *12
Not As Byte
Kredi As Integer
End Type

'Ogrenci veri tipi toplam hafizada 25 byte yer kaplamaktadir. Bu veri tipini kullanmak için 'Ogrenci tipinde degiskenler tanimlamak gerekmektedir.

Private Sub Form_Load()
Dim A As Ogrenci
Dim B As Ogrenci

'Bu degiskenlere bilgi atamak asagidaki sekildeki gibidir.

A.Ad="Ali"
A.Soyad ="Armer"
End Sub

String türü degiskenlere sabit bir uzunlukta yer ayirmak istersek asagidaki sekilde bir tanimlama yapmaliyiz.

Dim Name As String *12
Dim Address As String *50

VERİTABANI İŞLEMLERİ
Ders sonunda yapabilecekleriniz:
-Veritabanı kullanım açıklamak.
-ADO veri erişim yöntemini açıklamak.
-Veritabanına yazmak ve okumak.
-SQL Server ve Access veritabanlarına erişim.
I. ADO VERİ ERİŞİM YÖNTEMİ
Visual Basic uygulamalarına baktığınızda çoğunun veritabanı uygulaması olduğunu görürsünüz. Bu nedenle Visual Basic 6.0 ile veritabanı uygulaması geliştirmek için çok sayıda yenilikler yapılmıştır. Bu yeniliklerin başında yeni veri erişim yöntemi ADO (ActiveX Data Objects) gelir.
NOT: ADO ve Visual Basic, Microsoft firmasının tescilli markasıdır.
ŞEKİL: ADO VE VERİ ERİŞİM NESNELERİNİN KARŞILAŞTIRILMASI

NOT: ADO konusunda ayrıca sitemizin ASP kursuna bakınız.
A. ADO'YU KULLANMAK
ADO nesnelerini kullanmadan önce, diğer bir deyişle programınızda ADO kullanarak veritabanı işlemlerini yapmadan önce ADO nesnelerini ve referanslarını Visual Basic ortamına eklemeniz gerekir.
1. Project menüsünden References komutu kullanılır.
2. Microsoft ActiveX Data Objects 2.0 ya da daha ilerisi seçilir.
İPUCU: ADO versiyonları ve Visual Basic Service Pack'leri konusunda daha geniş bir araştırma yapınız. [Linkleri sadece kayıtlı üyelerimiz görebilir.ForumTR üyesi olmak için tıklayınız].
Örneğin formlarınızdaki metin kutularını ya da gridleri veritabanına bağlamak için ADODC bileşenin eklenmesi gerekir. Bu durumda ortama ADO kontrollerini de eklemeniz gerekir.
1. Project menüsünden Components komutu kullanılır.
2. Microsoft DataGrid Control 6.0 seçilir. Ayrıca Microsoft ADO Data Control 6.0'ında eklenmiş olması gerekir.
3. OK düğmesine tıklanarak kontrol projeye eklenmiş olur.
Ardından ADO DC üzerinde sağ tıklayarak elde ettiğiniz iletişim kutusunda veritabanı erişiminin birçok işlemini yapabilirsiniz. Geriye bir tek şey kalır, o da verileri görüntüleyecek olan DataGrid'in DataSource özelliğini ADODC olarak düzenlemek.


1. FORM ÜZERİNDEKİ KONTROLLERİ ADO DATA CONTROL'E BAĞLAMAK
ADO Control aracılığıyla veri kaynağı ile bağlantı kurulduktan sonra, TextBox, ComboBox, ListBox, Grid gibi kontrollerle birlikte kullanılabilir.
NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Burada adı geçen ticari ünvanlar ve markalar bilgi amaçlı kullanılmışlardır ve kendi imtiyazlarına sahiptirler. Bu dokümanlar ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için [Linkleri sadece kayıtlı üyelerimiz görebilir.ForumTR üyesi olmak için tıklayınız] adresine bakınız.
Bir kontrolün tasarım zamanında ADODC'e bağlanması için DataSource özelliğinin düzenlenmesi gerekir. Yine aynı şekilde bu işlemler çalışma zamanında da yapılabilir. Kullanılan kontrole göre kullanılan özellikler değişir. Örneğin bir TextBox kontrolünü ADODC ile ilişkilendirerek veri alışverişi yapmasını istersek DataField özelliği kullanılır:
Text1.DataField = "ADI "
Set Text1.DataSource = ADODC1
Aşağıdaki örnekte DataGrid kontrolü ile Access veritabanındaki veriler bir gride bağlanır.
Bu işlem için:
1. Project menüsünden Components komutu kullanılır.
2. Microsoft DataGrid Control 6.0 seçilir. Ayrıca Microsoft ADO Data Control 6.0'ında eklenmiş olması gerekir.
3. OK düğmesine tıklanarak kontrol projeye eklenmiş olur.
Private Sub Command1_Click()
ADODC1.ConnectionString ="Provider=Microsoft.Jet.OLEDB.3.51; Data Source=c:\my documents\adresler.mdb"
ADODC1.CommandType = adCmdTable
ADODC1.RecordSource = "ogrenciler"
Set DataGrid1.DataSource = ADODC1
End Sub
B. ADO NESNELERİ
ADO veri erişim sistemi oldukça basit bir nesne modeline sahiptir. Bu modelde birçok nesne seçimli olarak (birlikte) ya da bağımsız olarak kullanılabilir.
Tablo: ADO modelinde yer alan nesneler


Nesne Amacı
Command Bir veri kaynağı üzerinde bir query ya da deyimi işletir.
Connection Bir veri kaynağına doğrudan bağlantı yaratır.
Error Veri kaynağından bir hatayı döndürür.
Field Bir kayıt içindeki bir alan (kolon).
Parameter Bir komut için parametre tutar.
Recordset Bir komut tarafından üretilen (dönen) verileri içerir.
Örneğin bir Access veritabanına bağlantı kurmak için şu nesneler kullanılır:
Veri: ADRESLER.MDB
Connection: MUSTERI.MDB
Command: Select * from musteriler
Recordset: elde edilen bilgi.
Aşağıdaki örnekte sadece Recordset nesnesi ile bir Microsoft Access veritabanına erişilmektedir:
Dim rst As New ADODB.Recordset
rst.Open "Select * From musteriler", "DSN=MUSTERI", adOpenKeyset
Set DataGrid1.DataSource = rst
NOT: Yukarıdaki kodda yer alan DSN tanımlaması işletim sistemi tarafından yaratılabilir. Control Panel'de ODBC tanımlamalarına bakınız.
1. Recordset Nesnesinin Kullanımı
Aşağıdaki örnekte bir Recordset nesnesi ile Access veritabanındaki veriler DataGrid üzerinde gösterilmektedir:
Dim rst As New ADODB.Recordset
rst.Open "Select * From musteriler", "DSN=MUSTERI", adOpenKeyset
Set DataGrid1.DataSource = rst
2. Connection Nesnesi
Connection nesnesi bir veri kaynağına bağlantı kurmak için kullanılır. Connection nesnesi sayesinde bir data provider aracılığıyla (OLE DB) bir komut işletilir.
Connection nesnesi ile ConnectionString özelliği kullanılır. Bu özellik bağlanılacak veri kaynağını gösterir. Open metodu ise bağlantıyı açmak için kullanılır.
Dim cnn As New ADODB.Connection
cnn.Open "MUSTERI"
3. Command Nesnesi
Command nesnesi bir bağlantı üzerinde işletilecek özel bir query ya da komut yaratmak için kullanılır. Command nesnesinin ana amacı stored procedure'ların ve parametreli komutların çalıştırılmasını sağlamaktır. Bir komut nesnesi bir bağlantı üzerinde bağımsız olarak yaratılır ve işletilmeden önce veri kaynağına bağlı olan aktif connection ile ilişkilendirilir.
Bir komut herhangi bir recordset döndürmeden de kullanılabilir. Örneğin aşağıdaki program parçasında bir UPDATE komutu veritabanı üzerinde işletilmektedir.
strSQL = "UPDATE BORCU SET BORCU = BORCU * 1.15"
cmd.Execute
4. Recordset Nesnesi
Recordset nesnesi ADO içinde en çok kullanılan nesnedir. Recordset nesnesi veri kaynağından gelen verileri içerir. Bir komut ya da query çalıştırıldığında elde edilen kayıtları recordset nesnesi içerir.
Recordset nesneleri genellikle aktif connection ve command ile oluşturulur. Bunun dışında Recordset nesneleri bağımsız olarak da kullanılabilir.
Örnek: Recordset tanımlaması
Dim rst As New ADODB.Recordset
rst.Open "Select * From Ogrenciler", "DSN=ADRESLER",
adOpenKeyset, adLockOptimistic
Örnek: Bir recordset'in DataGrid üzerinde gösterilmesi
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
Con.Open="Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source=c:\data\sirket.mdb"
Rs.Open "SELECT * FROM musteriler", Con
Set DataGrid1.DataSource = rs
NOT: DSN tanımlı olan bağlantılar için bilgisayarda Control Panel üzerinde ODBC bağlantısını tanımlanmalıdır.
II. GÖZDEN GEÇİRME
1. Recordset nedir?
2. Bir recordset nasıl yaratılır?
3. Bir recordset'e ekleme yapmak için hangi metot kullanılır?
4. ADO nesneleri nelerdir?
III. VİSUAL BASIC UYGULAMASI
ER-FA ecza deposu bin kadar üyesine ilaç toptan ilaç pazarlamak üzere kurulmuştur. ER-FA ecza ilaç siparişlerini takip etmek için bir Visual Basic uygulaması geliştirmek istemektedir.
Yapılacak ana işlemler:
. Visual Basic programlama ortamında ana menü ve veri giriş formlarını tasarlamak.
. Veritabanını tasarlamak.
. Veri girişi ve raporlama için kodlar yazmak.
Yapılacak işlemlerin ayrıntıları:
. Visual Basic formu olarak veri giriş formlarını tasarlamak.
. Microsoft Access ya da SQL Server üzerinde veritabanlarını tasarlayın.
. Veri girişi sayfalarında form validation (form alanlarının kontrolü) yapın.
. KAYDET düğmeleriyle verilerin veritabanına kaydını yapın.
. Veritabanı işlemlerini ADO kullanarak yapın.
. İstenen raporlar için Data Environment ve Data Reports bölümlerinden yararlanın.
Sipariş sisteminin yanı sıra bir süre sonra ER-FA ecza deposu müşterileri için bir anket yapmaya karar vermiştir. Anketler de veritabanına bir metin bilgisi olarak eklenecektir. Bu koşullar altında; tabloları ve kayıtların birbiriyle bütünlüğün sağlayacak olan olası ilişkileri tanımlayın.
Bilgiler:
STOK KARTI MUSTERİ KARTI SİPARİŞ ANKET
Kodu Kodu Tarih Kodu
Tanımı Unvanı Sip No Anket Metni
Grup Kodu Grubu Mus Kodu
Satıcı Firma Adresi Stok Kodu
Birimi İlçesi Birimi
Birim Fiyatı İli Adet
KDV Tel Taşıyıcı Firma
Depo Kodu Fax Siparişi Alan
Paket Kodu Vergi Dairesi
Açıklama Vergi No
Resmi Kredisi Hesap Açılış Tarihi
Resmi
Web sitesi
PERSONEL (SİPARİŞİ ALANLAR) TAŞIYICI FİRMA
Kodu Kodu
Adı Soyadı Ünvanı
Adresi Adresi
İli İli
İşe Giriş Tarihi Güzergah
Öncelikle, Microsoft Access ile veritabanını tasarlayın.
Notlar:
. Genellikle kodu alanlarını Primary Key yapın.
. Birim fiyatlar genellikle "Adet" olarak düzenlenecektir. Onu Default yapın.
. Fiyat ve adet bilgilerine mutlaka pozitif bir değer girilecektir.
. Sipariş tarihi "günün" tarihi olarak otomatik olarak düzenlenecektir.
. Grup kodları, iller ve diğer seçenekli girişler bir Combo box olarak düzenlenecektir.
Bu veriler sabit ya da veritabanından gelerek doldurulabilir.
1. Veritabanını Yaratın ve Tabloları Tasarlayın.
Yukarıdaki bilgiler temelinde SIPARIS-TAKIP veritabanını yaratın. Ardından tabloları tasarlayın.
2. İlişkileri Kurun
Kodu alanları PK olduktan sonra ilgili tablolar arasındaki ilişkileri kurun.
Müşteri-Sipariş
Müşteri-Anket
Stok-sipariş
Personel-sipariş
Taşıyıcı firma-sipariş arasındaki ilişkileri kurun.
3. Örnek veriler girin:
Test amaçlı örnek veri girin.
4. Ana Menü Yapın
Programın veri giriş kartlarına yönlenmesini sağlayacak ve ilk olarak çalıştırılacak bir ana menü formu hazırlayın.
Visual Basic projelerinde genellikle menü çubuğu yaparak ana işlemleri onun üzerinde belirtirsiniz.
5. Veri Giriş Formları
Yukarıdaki tablolara veri girişi için Visual Basic formları hazırlayın.
İstenen formlar
Yapılacaklar:
. Stok kartı için columnar bir form
. Müşteri kartı için columnar bir form
. Anket için columnar bir form
. Personel için columnar bir form
. Taşıyıcı için columnar bir form
. Sipariş için tabular bir form
Yapılacaklar (öneriler)
. Müşteri formu için olası alanlara combo box ekleyin.
. Müşteri formu için olası alanlara Validation Rule ekleyin.
. Müşteri formu için form zeminini değiştirin.
. Müşteri formunun altına kendi hazırladığınız bir bitmap dosyayı koyun.
. Müşterinin Web sitesi bilgisini tablo tasarımına ekleyin. Daha sonra bunun form üzerinden girilmesini sağlayın. Web sitesi alanına [Linkleri sadece kayıtlı üyelerimiz görebilir.ForumTR üyesi olmak için tıklayınız] girin. Ardından üzerine tıklayarak ona ulaşmaya çalışın.
.Sipariş formunun alt başlık kısmına adet toplamı alın.
. Sipariş formunda birim fiyat ve tutarın görünmesini sağlayın.
. Sipariş formunun alt başlık kısmına tutar toplamı alın. Ayrıca altına KDV'li toplamı hesaplattırın.
. Sipariş formunda taşıyıcı firma ve siparişi alan müşterinin combo'larla seçilmesini sağlayın.
NOT: Veri girişi için form üzerinde metin kutuları (text box) ve gridler kullanın.
Uygulamanın Çalıştırılması:
Program yazım aşamalarında F5 tuşu ile program test edilir ve çalıştırılır. Ardından paketleme sihirbazı ile programın kullanıcı bilgisayarına yüklenir hale getirilmesi gerekir.

En Basit Olarak Access Veritabanı Kullanımı

Yazdığımız program çalışırken bazı bilgileri saklamak ve ileride kullanmak isteriz. Sözkonusu bilgiler çeşit olarak az ve kısa kısa ise bir text dosyası ile (Random Access DataBase) problemimizi çözebiliriz. Fakat saklamak isteğimiz biraz
daha karışıksa ve bilgileri tablolar şeklinde düzenlemeye ihtiyaç duyuyorsak text dosyaları yeterli olmayacaktır. Bu durumda en iyi çözüm MsAccess değildir; fakat en çok tercih edilendir.

Access ile Veri tabanı kullanımını örneklerden incelerseniz birçok farklı metotla karşılaşacaksınız. Aşağıda bence olabilecek en basit uygulamayı bulacaksınız.
Faydalı olması dileğiyle...

----------------------------------------------

ilk olarak Access'de bir veri tabanı oluşturun. Burada adını "MB2004.mdb" koyalım. Bu veri tabanı içerisinde tablolar oluşturun ve bilgilerinize uygun alanlar tanımlayın. kabaca bir access veri tabanı örneği verelim:

dosya ismi : "MB2004.mdb"
tablo 1 : "Tel_List"
tablo 1 tanımları : "Ad" - metin(15 karakter)
"SoyAd" - metin(25 karakter)
"EvTel" - metin(10 karakter)
"CepTel"- metin(10 karakter)
"IsTel" - metin(10 karakter)
"Ilce" - metin(15 karakter)
"DTarih"- tarih(basit form)

----------------------------------------------

'örneklerde bahsedilmesi unutulanı en başta söyleyelim; hazırlayacağınız Access dosyaları için MsOffice 2000 kullanacaksanız "Microsoft DAO 3.6 Object Library" ; MsOffice 97 kullanacaksanız "Microsoft DAO 3.51 Object Library" Referans'larını projeye dahil etmeyi unutmayın...


'veri tabanına ihtiyaç duyulan yerde ilk olarak tanımlanacak

'değişken isimleri
Dim dbProje As Database
Dim rsTelefon As Recordset

'değişkenlere atamalar --> farklı kullanımlar aşağıda verildi.
'"App.Path" uygulamamızın olduğu dizini ifade eder.
Set dbProje = OpenDatabase(App.Path & "\Projeler\MB2004.mdb")
Set rsTelefon = dbProje.OpenRecordset("select * from Tel_List")
----------------------------------------------

'Tel_List tablosundan ismi "Mehmet" olan kişinin Soyadını bulalım.

Dim SAd as String 'veri tabanında alacağımız bilgiyi koyacağımız değişken

rsTelefon.MoveFirst 'tablonun ilk kaydına git
Do Until rsTelefon .EOF 'tablo sonuna kadar devam edecek
If rsTelefon!Ad = "Mehmet" Then 'tablonun "Ad" sütununa bak
SAd = rsTelefon!SoyAd 'aranan "Ad" bulundu - ilgili "SoyAd"ı al
GoTo dvm1
End If
rsTelefon.MoveNext 'tabloda bir satır ilerle
Loop

dvm1:

----------------------------------------------

'Tel_List tablosuna yeni kayıt yapalım

rsTelefon.AddNew 'burada bir formdaki bilgileri aktarabilirsiniz.
rsTelefon!Ad = "Mehmet"
rsTelefon!SoyAd = "Bakkaloğlu" ' = Text3.Text olabilirdi.
rsTelefon!EvTel = "2167771777"
rsTelefon!CepTel = "5399991999"
rsTelefon!IsTel = "2165551555"
rsTelefon!Ilce = "istanbul"
rsTelefon!DTarih = "01.01.1974"
rsTelefon.Update

----------------------------------------------

'Tel_List tablosundaki bir kayıtta değişiklik yapalım
'"Mehmet Bakkaloğlu" isimli kullanıcının CepTel kaydını değiştirelim.

rsTelefon.MoveFirst
Do Until rsTelefon.EOF
If rsTelefon!Ad = "Mehmet" And rsTelefon!SoyAd = "Bakkaloğlu" Then
rsTelefon.Edit 'değişiklik için aç
rsTelefon!CepTel = "5398881888"rsTelefon.Update 'değişikliklerden sonra

kayıt yapılacak
GoTo dvm2
End If
rsTelefon.MoveNext
Loop

dvm2:


----------------------------------------------

'Tel_List tablosundaki "Ali Veli" isimli kaydı silelim

rsTelefon.MoveFirst
Do Until rsTelefon.EOF
If rsTelefon!Ad = "Ali" And rsTelefon!SoyAd = "Veli" Then
rsTelefon.Delete 'sildikten sonra update yapılmaz
End If
rsTelefon.MoveNext
Loop

----------------------------------------------


'veri tabanı kullanımı bitince kapatılır.

rsTelefon.Close
dbProje.Close
----------------------------------------------

'Access veri tabanını yaptığımız programla birlikte verdiğimizde kullanıcı tarafından Access kullanılarak doğrudan açılmasını engellemek istiyorsak şifreleyebiliriz. Bunun için Access içerisinde Araçlar-Güvenlik adımından veri tabanımıza şifre koymalıyız. program içerisinde de veri tabanına her ulaşmak istediğimizde tanımlamamızı şifreyi de belirterek yapmalıyız. Örnek:

Set dbProje = OpenDatabase(App.Path & "\Projeler\MB2004.mdb", False, False, "MS Access; PWD=PIC16F877A")


'Kullanıcının Access veri tabanımızı tanımasını istemiyorsak artı olarak uzantısını da değiştirerek kullanabiliriz. Access'de hazırladığımız veri tabanının uzantısı ".mdb" dir. Örnek olarak biz bunu ".mbm" yaparak kullanabiliriz. Bu durumda tanımlamayı şöyle yapmalıyız.

Set dbProje = OpenDatabase(App.Path & "\Projeler\MB2004.mbm", False, False, "MS Access; PWD=PIC16F877A")


En Basit Olarak Random Access Veritabanı Kullanımı

Yazdığımız programda birtakım bilgileri veri tabanında saklamak istediğimizde karşımıza birçok seçenek çıkacaktır.Bu seçenekler arasında en basit veri tabanı burada anlatılan text tabanlı yapıdır. Notepad ile kolayca açılıp okunabilecek, işlenmesi kolay kapladığı alan küçük bir veri tabanı. Ayrıca herhangi bir Referansa ihtiyacınız olmayacağından programınıza bir yük getirmeyecektir.

Aşağıdaki bilgileri bir program olarak yazıp test etmek için küçük bir form oluşturun. Formun üzerine 5 adet text ve 2 adet command nesnesi yerleştirin. Form_Load program parçacığına "DosyaBelirle" ; Commandların birine "Kaydet" diğerine de "KayitGetir(2)" yazın(2-->kaçıncı kayıdı getireceği). Oluşturacağınız bir modüle de aşağıdaki kodları yazarsanız step step inceleme şansınız da olacaktır.

Random Access Veri Tabanı anlatımına kaydedilecek verilerin cinslerini ve uzunluklarını tanımlayarak başlayalım.

--------------------------------------------------------------------------------------------------------------

Type Kayit_Katari 'bloklar şeklinde kaydedeceğimiz verilerin
Bilgi1 As String * 20 'açılımını vermemiz gerekiyor.
Bilgi2 As String * 30 'bunun için "Type" kullanılır.
Bilgi3 As String * 40
Bilgi4 As String * 50
Bilgi5 As String * 100
End Type

Dim Veriler As Kayit_Katari 'tanımlı tipte kullancağımız değişken
Dim Dosya_No As Integer 'kullanacağımız dosyaya sistemin vereceği no
Dim Veriler_Uzunluk As Long 'girilecek veri bloklarında paket uzunluğu
Dim KayitSiraNo As Long 'yapılacak kaydın sıra numarası
Dim MevcutKayitSayisi As Long 'dosyada kaç kayıt var
Dim Dosyamiz As String 'çalışılan text dosyası

----------------------------------------------------------------------------------------------------------------

Sub DosyaBelirle()

'ilk olarak verileri kaydedeceğimiz text dosyasının ismini ve adresini alıyoruz.

On Error Resume Next 'hata durumunda devam

Close #Dosya_No 'çalışmalarımızda kullanılacak dosya açıksa kapatılıyor - önlem

'çalışacağımız text dosyasına ait bilgileri alıyoruz.
'CommonDialogla ilgili daha detaylı bilgiyi
'27.08.2004 tarihli bir makalede yazmıştım!
Form1.CommonDialog1.DialogTitle = "Verileri yazacağımız metin dosyasını gösterin.."
Form1.CommonDialog1.Flags = cdlOFNOverwritePrompt Or cdlOFNHideReadOnly
Form1.CommonDialog1.Filter = "Dat Dosyası(*.dat)|*.dat|" 'başka bir uzantı da seçilebilir
Form1.CommonDialog1.FilterIndex = 0
Form1.CommonDialog1.ShowSave

'CommonDialog'un açtığı text dosyanın adını çalışacağımız değişkene atıyoruz
Dosyamiz = Form1.CommonDialog1.FileName

If Dosyamiz = "" Then 'dosya seçilmeden iptalle çıkıldıysa kontrol
Exit Sub
Else
Dosya_No = FreeFile 'Oluşturacağımız dosya için sistemden numara alıyoruz
Veriler_Uzunluk = Len(Veriler) 'dosyamız için blok uzunluğunu belirliyoruz

'Kullanıcının verdiği isimle text dosya oluşturuyoruz.
Open Dosyamiz For Random As Dosya_No Len = Veriler_Uzunluk
End If

End Sub

----------------------------------------------------------------------------------------------------------------

Sub Kaydet()

On Error Resume Next

'Çalışacağımız dosyaya aktaracağımız bilgileri Type ile tanımladığımız
'değişkenlere yüklüyoruz.

Veriler.Bilgi1 = Form1.Text1.Text
Veriler.Bilgi2 = Form1.Text2.Text
Veriler.Bilgi3 = Form1.Text3.Text
Veriler.Bilgi4 = Form1.Text4.Text
Veriler.Bilgi5 = Form1.Text5.Text

'Elimizdeki verileri oluşturduğum text dosyasına "Put" komutu ile yazacağız
'Bu komutun kalıbını şu şekilde verebiliriz :
'Put kaydın yapılacağı dosyaya sistemin verdiği numara, kayıt sıra numarası, kaydedilecek bilgi bloğu ismi

'Mevcut dosyadaki kayıt sayısını bularak yapacağımız kaydın sırasını belirleriz
'bunun için dosya boyutunu bir kayıt boyutuna böleriz.

MevcutKayitSayisi = FileLen(Dosyamiz) / Veriler_Uzunluk

KayitSiraNo = MevcutKayitSayisi + 1

've sonunde dosyaya kaydediyoruz.
Put #Dosya_No, KayitSiraNo, Veriler

End Sub

----------------------------------------------------------------------------------------------------------------

Sub KayitGetir(KayitSirasi As Integer)

'çalıştığımız dosyadan veri okumak yazmak kadar kolay
'okuma işini "Get" komutu ile yapıyoruz. kalıbı "put" komutu ile aynı

Get #Dosya_No, KayitSirasi, Veriler

'dosyadan aldığımız verileri forma aktarıyoruz.
Form1.Text1.Text = Veriler.Bilgi1
Form1.Text2.Text = Veriler.Bilgi2
Form1.Text3.Text = Veriler.Bilgi3
Form1.Text4.Text = Veriler.Bilgi4
Form1.Text5.Text = Veriler.Bilgi5

End Sub

Visual Basic ile Veritabanına ilk Adımlar

Bu örneğimiz Visual Basic ile veritabanlarının kullanımı hakkında size az çok bilgi verir umarım. Örneğimizi uygulamak için Visual Basic ile örnek olarak gelen BIBLIO.MDB adlı veritabanına ihtiyacınız var. (Umarım bu dosyanın hiç bir işe yaramadığını düşünüp silmemişsinizdir.) Hazırsanız veritabanı programınızı oluşturacak adımları uygulamaya başlayabiliriz.

Adım - 1 Öncelikle alet kutucuğundan "veri" kontrolünü seçerek formunuzun üzerinde istediğiniz büyüklüğe getirin. Bu kontrolü veritabanı içinde hareket etmek için kullanacağız. Örnek için formunuzun son haline bakabilirsiniz.

Adım - 2 Data 1 kontrolünün Properties kutucuğunu aktif hale getirin ve buradan Connect seçeneğini Access olacak biçimde değiştirin.

Adım - 3 Yine Data 1 kontrolünün Properties kutucuğu aktifken, kontrolün DatabaseName seçeneğini kullanarak istediğiniz veritabanını seçin. Biz bu örneğimizde BIBLIO.MDB dosyasını kullanacağız, bu yüzden seçeneği bu dosyayı görecek biçimde ayarlayın.

Not: Eğer diğer programlarla ilişkilerden dolayı, bu kontrole, tasarım aşamasında istediğiniz veritabanını atayamıyorsanız DatabaseName özelliğini, programınızın çalışma aşamasında değiştirip program çalışırken istediğiniz veritabanı dosyasını seçebilirsiniz.

Adım - 4 Data 1 kontrolünüzün RecordSource seçeneğini, veri tabanının istediğiniz tablosuna erişim sağlamak için kullanın. Eğer daha önceden DatabaseName seçeneğine herhangi bir veritabanı dosyası atadıysanız. RecordSource seçeneğine tıkladığınızda karşınıza seçtiğiniz veritabanı dosyasında kullanabileceğiniz bölümler gelecektir. Biz bu örneğimizde "Titles" bölümünü kullanacağız.

Adım - 5 Formunuzun üzerine, veritabanı dosyasında seçtiğiniz alanları görüntüleyebilmek için istediğiniz sayıda metin kutusu yerleştirin. Biz örneğimizde 3 farklı alan kullanacağımızdan formumuza 3 adet metin kutusu yerleştirdik. Veritabanımızı görüntülemek için kullanacağınız kontroller metin kutularıyla sınırlı değil. Resim kutularını, ızgara kontrolünü, etiket kontrolünü ve bunun gibi birçok kontrolü bu iş için kullanabilirsiniz.

Not: Yerleştirdiğiniz metin kutularını kullanarak veritabanı dosyasında kalıcı değişiklikler yapabilirsiniz.

Adım - 6 Text1 kontrolünün Özellikler kutusunu aktif hale getirerek DataSource seçeneğini "Data1"i gösterecek biçimde değiştirin.

Adım - 7 Metin kutularının yanlarında seçtiğiniz alanlara uygun etiketler yerleştirin.

Adım - 8 "Text1" metin kutusunun görüntüleyeceği veritabanı alanını DataField seçeneğini kullanarak değiştirin. Bu işlemi her bir metin kutusu için gerçekleştirin ve her birinin farklı alanları göstermesini sağlayın.

Adım - 9 Son olarak programa bir çıkış tuşu ekleyin ve programı çalıştırın. Ok tuşlarını kullanarak veritabanı içinde gezinebilir, metin kutularının alanlarını değiştirerek, diğer alanlardaki verileri görüntüleyebilirsiniz.

Visual Basic ile Access Tablosu Oluşturmak

Dim Tablo As New TableDef
Set dosya = CreateDatabase("c:\deneme.mdb", dbLangTurkish)

With Tablo
.Name = "Adresler"
.Fields.Append .CreateField("ADI", dbText, 20)
.Fields.Append .CreateField("SOYADI", dbText, 20)
.Fields.Append .CreateField("ADRES", dbText, 50)
.Fields.Append .CreateField("TEL", dbText, 20)
End With
dosya.TableDefs.Append Tablo

Set dosya = Nothing
Set Tablo = Nothing

Veri Tabanımızı Kendimiz Oluşturalım

Bu yazı dizisinde dao ile baştan sona bir veritabanı oluşturacağız.. Özellikle ticari program yapan arkadaşların işine cok yarayacaktır.

İlk adım boş bir veritabanı oluşturmak ;

Bunu yapabilmeniz için ADO.Library'i programınıza import etmelisiniz. Detayına girmeyeceğim bu işe merak sarmış biri zaten nasıl yapılacağını biliyordur. Kodu yazalım...

Private Sub dbolustur(dbyolu As String)
Dim ws As Workspace
Set ws = DBEngine.Workspaces(0)

If Dir(dbyolu) <> "" Then
If MsgBox("Belirtilen yolda Database Var" + vbCrLf + "Üzerine Yazılsınmı?", vbYesNo, "Dikkat") = vbYes Then
Kill (dbyolu)
Else
Set ws = Nothing
Exit Sub
End If
End If

Set db = ws.CreateDatabase(dbyolu, dbLangGeneral, dbEncrypt)
Set db = Nothing
Set ws = Nothing
End Sub

Kodu deneyecek olursak ;

Private Sub Command1_Click()
dbolustur "c:\den.mdb"
End Sub

Hepsi bu kadar;

Simdi c surucusunun altında bir Access mdb var. Hemde sıfır kilometre ama 64 kb :))

Buraya kadar ne yaptık bakacak olursak ;

İlk önce workspace objesini declare ettik sonrada set ettik. Sonrasında verilen yolda aynı adda
database varmı yokmu onu kontrol ettik. Eğer varsa bir msgbox'la kullanıcı onayı istedik.
Evet yanıtını alırsak var olan database'i ucurarak yenisini oluşturduk. Eğer yanıt hayırsa
olduğumuz yerden Kaçtık. Ama çıkarken Kapıyı Kapatmayı unutmuyoruz. Rem belası işte..

Sonraki adımdada bir tablo oluşturalım. Tablosuz database ne işe yarar oyle değilmi ;


Private Sub tbolustur()
Dim db As DAO.Database
Dim tablo As DAO.TableDef

Set db = OpenDatabase("c:\den.mdb")
Set tablo = db.CreateTableDef("deneme")
With tablo
.Fields.Append .CreateField("deneme", 1, 10)
End With
db.TableDefs.Append tablo

Set tablo = Nothing
Set db = Nothing
End Sub

yukarıdaki kodda neler yaptık ?

Database'i açtık , tablo objesini set ettik , içine deneme adında bir alan ekledik,
(Alan eklenmese tablo olusturulamaz bilesiniz.) tabledef nesnesine tablo objesini yedirdik ve tablomuz meydana geldi.
Şimdi c nin aldındaki den.mdb nin içerisinde deneme adında bir tablo var.


Visual Basic ‘de Kullanılan SQL Cümleleri

Bir dosyadaki kayıtları eğer ki bir kritere göre listelemek istiyorsak en mantıklı olan, önce dosyanızı bir SQL sorgusu ile süzmek, daha sonra listeleme yaptırmaktır. Aksi halde zaman kaybınız mükemmel derecede olacaktır.

Örnek cümleler ve anlatımlar aşağıdadır. Mantıklı olan da zaten önce süzmektir.
Bir dosyadaki "Ahmet" isimli kayıtları arattırırken tutu ta (atıyorum) 15.000 kaydı baştan sona taratıp "if tablo.fields("ad")="Ahmet" then falan filan işleri yap endif gibi bir döngü kurmak hem çok acemice olur hem de dediğim gibi zaman kaybettirir. basit bir cümle işinizi kolaylaştırır ve inanamayacağınız kadar hız elde edersiniz.
yukardaki işlemi aşağıdaki gibi yapmanız faydanızadır
sorgu="select * from tablo where ad="Ahmet"" gibi.

SELECT : Seçim
SELECT * FROM kisiler
SELECT adi, soyadi, sicilno, adres FROM kisiler
FROM : Kullanılacak tabloyu belirtir
WHERE : Sorgulamada kısıtlama ifadesi
SELECT * FROM kisiler WHERE ad = “Ali” ‘ Textler tırnak çerisinde
Mantıksal veriler TRUE - .T. , FALSE - .F.
SELECT * FROM kisiler WHERE cinsiyet = .T. AND : Ve NOT : Değil OR : Veya SELECT * FROM kisiler WHERE yas > 10 AND cinsiyet =.T. SELECT * FROM orgenciler WHERE sınıf = 1 OR sınıf = 2
IN : İçinde
SELECT * FROM kisiler WHERE adres IN ("ankara","istanbul")
SELECT * FROM kisiler WHERE NOT adres IN ("ankara","istanbul")
BETWEEN : Arasında
SELECT * FROM kisiler WHERE yas BETWEEN 10 AND 15
LIKE : İçeren
SELECT * FROM kisiler WHERE adres LIKE ‘* Kızılay *’
ORDER BY : Sıralama
SELECT adi, soyadi FROM kisiler ORDER BY soyadi
DESC : Küçükten büyüğe sırala (A-Z)
ASC : Büyükten küçüğe sırala (Z-A) (DEFAULT)
SELECT adi, soyadi FROM kişiler ORDER BY ad ASC,soyad
DESC DISTINCT : Tekrarsız
SELECT DISTINCT adi FROM kisiler
DISTINCTROW : Tekrar eden satırlardan sadece birini seçer
SELECT DISTINCTROW * FROM Tablo_Adı
GROUP BY : Gruplama SELECT yas, AVG(maas) FROM kisiler GOUP BY yas DELETE : Sil DELETE FROM kisiler WHERE sicilno = 212 DELETE FROM kisiler WHERE maas IS NOT NULL
INSERT : Ekle INTO : İçine
VALUES : Değerler
INSERT INTO kisiler (adi,sayadi,sicilno) VALUES('Veli', 'Koşan', 9)
UPDATE : Güncelle
SET : Uygula UPDATE kisiler SET kisiler.adi='Veli', kisiler.soyadi='Koşan' Where kisiler.Sicilno=9
SUM : Toplam
SELECT SUM(maas) FROM kisiler
AVG : Ortalama
SELECT AVG(maas) FROM kisiler
MAX : En büyük değer SELECT MAX (maas) FROM kisiler
MIN : En düşük değer SELECT MIN(maas) FROM kisiler COUNT : Say SELECT COUNT(*) FROM kisiler SELECT COUNT(*) FROM kisiler WHERE yas > 16 SELECT COUNT(DISTINCT yas) FROM kisiler
JOIN : Birleştirme SELECT * FROM kisiler,bölüm WHERE kisiler.sınıf = bölüm.sınıf
SAVE TO TEMP : Tampon tablo oluşturur SELECT * FROM personel WHERE cins =.F. SAVE TO TEMP bayan
KEEP : Kalıcı tablo oluşturur SELECT * FROM personel WHERE cins = .F. SAVE TO TEMP bayan KEEP
Tablonun tüm alanlarını ve bütün kayıtlarını seçmek : “Select * from Tablo_Adı”
Tablonun alan ve kayıtlarını belli kriterler göre seçmek : “Select alan1, alan2 from Tablo_Adı Where alan3 = kriter1”
Like ile alan ve kayıt seçimi :
Adres alanı içerisinde “Ankara” bulunan kayıtları seçmek.“Select * from tablo_adı where adres like ‘*Ankara*’ ”
Küçükten büyüğe sıralı olarak seçmek :
"Select * from kisiler order by kayıtno DESC"


Veritabanındaki Değişiklikleri Bulmak

Veri Tabanındaki Değişiklikleri Kaydetmek Kullanıcıyı Uyarmak

'İşte Aradığınız İpucu "Değişiklikleri Kaydetmek İstiyor musunuz?"
'Bu Algoritma İle Düzenle Butonunu Oradan Kaldırıp
'Diğer Populer programlar gibi "Değişiklikleri Kayıt edebilirsiniz"

'Açıklama
'Fonksion çalıştığı zaman Recordset nesnesinin Tuttuğu veriyi okur ve değişkenlere aktarır
'Daha sonra verinin değişip değişmediğini anlamak için recordset ile textbox ların içindeki
'Verileri karşılaştırır eşitlik sağlanırsa bir sonraki veriyi okur
'İçerik değişmiş ise msg verir.


'Unload Fonksiyonu için
Private Sub Form_Unload(Cancel As Integer)
adı = Data1.Recordset("Ismi")
soy = Data1.Recordset("Soyadı")

'Textlerdeki veri ile datadaki veriler karşılaştırılır
If ad = Text1.Text And soy = Text2.Text Then
End
Else
Degisti=MsgBox ("Değişiklikleri Kaydetmek İstiyormusunuz?",35,"ForgeR")
if Degisti=6 then
'Kayıt Düzenleme bölümü
End if
End Sub


'Veri Tabanında Gezinti İçin

Private Sub İleri_Click()
On Error GoTo gec
adı = Data1.Recordset("Ismi")
soy = Data1.Recordset("Soyadı")

'Textlerdeki veri ile datadaki veriler karşılaştırılır
If ad = Text1.Text And soy = Text2.Text Then

gec:
a = Data1.Recordset
On Error Resume Next
On Error GoTo 5
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
5:
MsgBox "Bu Veri Tabanındaki Son Kayıttır"
'Açıklama Burada Geri fonksiyonuna gitmesi gerekiyor
'Aksi olduğunda İleri butonuna İkincikez basıldığında datanesnesi
'boşa çıkar
Geri_Click
Else
Text1 = Data1.Recordset("Ismi")
Text2 = Data1.Recordset("Soyadı")
End If

Else
Degisti=MsgBox ("Değişiklikleri Kaydetmek İstiyormusunuz?",35,"ForgeR")
End If
End Sub

2 Veri Tabanı Arasında Veri Transferi

vt1.mdb içerisindeki tablo1 tablosunun 'adı, soyadı, telefon' alanlarını, vt2.mdb içerisindeki tablo2 tablosuna ekleyelim. Bunun için tablo2 de 'adı, soyadı, telefon' alanlarını koyabileceğimiz aynı tipli alanlar olmalıdır.

Private Sub Command1_Click()
Set cn = New ADODB.Connection
cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:\vt1.mdb"
strSQL = "INSERT INTO tablo1 (adı, soyadı, telefon) " & _ " tablo2 IN 'c:\vt2.mdb'" ' IN kelimesi ile farklı veri tabanı yolu gösterilir.
cn.Execute strSQL
End Sub

Hedef veri tabanında tablo2 yoksa bunu kendimiz oluşturmamız gerekecektir. SQL yeniden yardımımıza koşuyor:

Private Sub Command1_Click()
Set cn = New ADODB.Connection
cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:\vt2.mdb"
strSQL = "CREATE TABLE tablo2 (adı TEXT(50), soyadı TEXT(50), telefon TEXT(10));
cn.Execute strSQL
End Sub

Visual Basic de Excel yada Access Bağlantısı

Hazırladığınız bir uygulamaya excel yada accees veri tabanı bağlantısı yapmak istiyorsanız VB menüsünden Project -> References yolunu izleyin excel kutusunu veya accees kutusunu işaretleyin. kısaca VB menüsünden Project -> References yolunu dan istediğiniz bağlantıyı yapabilirsiniz..






Tek Tuşla Veritabanından Bilgi Almak

Örneğin veritabanında bulunan 1.000.000 sayının sıralı olarak yeniden veritabanına yazılması bunu tek tuşla nasıl yaparız.?

(formunuzda data nesnesi kullandığınızı varsayıyorum)
(veritabanındaki alan adı "sayi" olsun)

'öncelikle veritabanındaki verileri okuyalım

dim a(1000000) as array
dim kayit,i as integer

kayit = data1.recordset.recordcount
for i = 1 to kayit
a(i) = data1.recordset("sayi")
data1.recordset.movenext
next i

'daha sonra veritabanındaki kayıtları silelim

data1.recordset.movefist
for i = 1 to kayit
data1.recordset.delete
data1.recordset.update
data1.recordset.movenext
next i

'daha sonra sayiları küçükten büyüğe sıralayalım

for i = 1 to kayit
for j = 1 to kayit
kucuk=a(j)
if kucuk>a(j+1) then
a(j) = a(j+1)
a(j+1) = kucuk
end if
next j
next i

'rakamları sıraladık şimdi sıra veritabanına girmekte

for i = 1 to kayit
data1.recordset.addnew
data1.recordset("sayi") = a(i)
data1.recordset.update
next i



Veritabanında Kayıtlı Bilgileri Combobox a Aktarmak

Veritabanına bağlı uygulamalarda belirli bir alandaki kayıtları combobox a nasıl aktarabiliriz...

Dim sayi, i As Integer
Dim cevap
If Data1.Recordset.RecordCount = 0 Then
cevap = MsgBox("Listelenecek Kayıt Yok", 48)
Combo1.Enabled = False
Else
Data1.Recordset.MoveLast
sayi = Data1.Recordset.RecordCount
Data1.Recordset.MoveFirst
For i = 1 To sayi
Combo1.AddItem Data1.Recordset.Fields("listelenecekkaydınadı")
Data1.Recordset.MoveNext
Next i
Data1.Recordset.MoveFirst
End If

**********************************************
Burada kullandığımız kodları formun activate olayına yazarsak ve nesneleri birbiri ile tam ilişkilendirirsek formumuz yüklendiğinde önce veritabanındaki kayıtları gözden geçirecek ve okuduğu bilgileri kayıt sırasına göre combo içine alacak...Eğer kayıtlı bilgi yoksa bize listelecek verinin olmadığını söyleyecek ve combomuzu etkisiz duruma getirecek.... Ayrıca comboya veritabanındaki bilgilerin okuma biçiminde eklendiğini söylemek yerinde olur. Yani aynı listeyi data1 nesnesi ile yine oluşturursunuz ama combo üzerinden güncelleyemezsiniz...

Ayrıca combomuzu bu işlemi yapmadan önce veritabanı ile ilişkilendirmemiz gerekli... bunun için öncelikle
data1 nesnesi yerleştirmeli ve bunu veritabanımızla ilişkilendirmeliyiz.

data1'in öncelikle databasename kısmından dosyamızı bulacağız... ve bu nesne için bir kayıt/okuma yolu vereceğiz. bunun için data1 nesnesi özelliklerinden recordsource kısmında veri tabanımızdaki kayıtlı olan tablelardan birini seçeceğiz...

ve yine combomuzu da data1 nesnesine bağlayacağız... bunun için datasource=data1, datafiled="istediğimizalan" şeklinde ilişkilendirme işimizi görür.


Oracle Veri Tabanına Bağlantı

Visual Basic de Oracle veri tabanı kullanarak da uygulama yapa biliriz bunun için OLE DB provider dan ORACLE seçmek yeterli

ADO ile Oracle veri tabanına baglantı kura bilmek için OLE DB provider seçin veri tabanın sunucu ismini ve veri tabanına erişime yetkili olan bir nesneyi seçip yaparsak oracle veri tabanına baglantı yapıla bilinir aşağıdaki kod buna güze bir örnektir.


Örnek:

İnstance Name = "NETTCP30.WORLD"
User Name = system
Pwd = pass

gServer = "NETTCP30.WORLD"
gBagla = "Provider=MSDAORA.1;Password=pass;User ID=system;Data Source=NETTCP30.WORLD;Persist Security Info=True"
Set gDosya = New ADODB.Connection
gDosya.Open gBagla
Set gSorgu = New ADODB.Recordset
Set gSorgu1 = New ADODB.Recordset
gSQL = "SELECT * FROM SAM2005.TABLOSAMSERITMP WHERE DURUM='A'"
gSorgu.Open gSQL, gDosya, adOpenStatic, adLockReadOnly, -1
gSQL = "SELECT * FROM SAM2005.TABLOSAMSERITMP WHERE DURUM='A'"
gSorgu1.Open gSQL, gDosya, adOpenStatic, adLockReadOnly, -1
Unload frmlogo
frmSeri.Show


Access Yerine DBASE 5,0 (DBF) Veritabanı Kullanımı

Özellikle veri tabanı şişmeleri ve bin kayıttan sonra bozulduğu söylentileri (ne kadar doğruysa) beni ister istemez Access veri tabanından soğuttu. Bende yeni arayışlara girdim.
Ben örnek olarak DBase 5,0 deneyelim derim. Kullanım açısından aynen Access’e benzediği için veri tabanı kullanımını az çok bilen bir kişi hiç zorlanmadan DBase kullanımına geçebilir. Sadece Data (Data Access Object – DAO Bağlantı Nesnesi) nesnesinin ayarlarında birkaç değişiklik yaparak DBase kullanımına geçilebilir.
Çok fazla detaya girmeyeceğim. Sadece temel bağlantı kurulumu ve kayıt işlemlerini anlatacağım.

Veri Tabanı Oluşturma:

Öncelikle Visual Data Manager açarak;
File > New > DBAse > 5.0 yolundan bir dizin belirterek veri tabanımızı oluşturuyoruz.
Dizin belirlemek için açılan pencereye örneğin “c:\Database” şeklinde dizin belirtiyoruz. Dizinin var olup olmaması sorun değil. Eğer böyle bir dizin yoksa oluşturuluyor.
Daha sonra aynen Access veri tabanı oluşturur gibi “New Table” seçeneğinden tablo oluşturmaya geçiyoruz. Tablo Adına “Bilgi” koyuyoruz. Alt veri kısmı (yani Fields) olarak da “Adi” ve “Soyadi” kısımlarını oluşturuyoruz. Tablo adını ve alt veri kısımlarını belirledikten sonra “Build Table” seçeneğinden tablomuzu tamamlıyoruz.
Artık veri tabanımız hazır hale geldi…

Bağlantı Kurmak:

Formumuza bir adet data nesnesi, iki adet text kutusu, iki adet label, iki adet buton ekliyoruz.Label1’in caption özelliğini “Adı”, label2’nin caption özelliğini “Soyadı” olarak belirliyoruz.Buton1’in caption özelliğini “Kaydet”, buton2’nin caption özelliğini “Çıkış” olarak belirledikten sonra Data nesnesinin “Connect” özelliğini “dBase 5.0;” olarak belirleyip
“Databasename” özelliğinden oluşturduğumuz veri tabanını seçiyoruz.”RecordSource” özelliğinin tablo adımız olan “Bilgi” olmasına dikkat ediyoruz.
Daha sonra text kutularını data nesnesine bağlıyoruz. Bunun için text kutularının “DataSource” özelliğini “Data1” olarak belirliyoruz.Text1’in “DataField” özelliğini “Adi”, Text2’nin “DataField” özelliğini “Soyadi” olarak belirliyoruz. Böylelikle bağlantıyı sağlamış olduk.
Artık bir dbf veri tabanına bağlantımız var. Eğer veri tabanında kayıt varsa Data nesnesinden kontrol edebiliriz.

Kayıt Girmek:

Veri tabanımıza kayıt girmek istediğimizde ise aynen Access’te olduğu gibi şu kod işimizi görecektir;

Private Sub Command1_Click()
Data1.RecordSet.AddNew
Data1.RecordSet.Update
End Sub

Diğer işlemler için aynen Access’te kullandığımız yöntemleri kullanıyoruz.

Sonraki kayıt için;
Data1.RecordSet.MoveNext

Önceki kayıt için;
Data1.RecordSet.MovePrevious


ADODB Kullanımı ve Püf Noktaları

Connection Nesnesi:

Ado'yu kullana bilmek için öncelikli olarak "Project-References" menüsünden "Microsoft Data Objects 2.0" veya "2.1-2.5-2.6-2.7-2.8" dan birtanesi tanımlanır.
Dim Conn As New ADODB.Connection ' Bağlantımızı tanımladık.
Eğer Access kullanacak ise "MS jet" ile bağlamamız Gerekir.
Conn.ConnectionString="Provider=Microsoft.Jet.OLED B.4.0; Data Source=DataBaseAdi"
Eğer ODBC kullanacak isek
Conn.ConnectionString="DNS(DataBaseAdi)"
Eğer MySQL kullanacak isek
Conn.ConnectionString="DRIVER={MySQL ODBC 3.51 Driver}; SERVER=" & _SunucuAdı& "; DATABASE=" & DataBaseAdi& "; UID=" & KullaniciAdi & _";PWD=" & Sifre
Eğer MSSQL kullanacak isek
Conn.ConnectionString="DRIVER={SQL Server}; Server=" & SunucuAdi & "; " & _
"Database=" & DataBaseAdi & ";UID=" & KullaniciAdi & ";PWD=" & Sifre & ";"
Burada
SunucuAdı 'bilgisayarımız yada bağlanacagımız Sunucunun adı sucuya bağlanmacak isek "localhost" yazılabilir
DataBaseAdi ' kullanacağımız database in adı eğer verilmedi ise boş olmalı
KullanıcıAdı 'database verdiğimiz kullanıcı adı eğer verilmedi ise boş olmalı
Sifre 'database verdiğimiz sifre eğer verilmedi ise boş olmalı
Bağlanmızın ConnectionString değerini girdikten sonra geriye bağlantı yap demek
kaldı bunuda aşağıdaki gibi yaparız.
Conn.Open
İpucu:
Eğer bağlantıyı kapatmak istiyorsak açık olup olmadığını denetleyip kapatmalıyız.
if Conn.State<>adStateClosed then
Conn.Close
end if
Bağlantımızı Kuduğumuza göre Recordset nesnesine geçebiliriz.
Recordset Nesnesi
Recordset nesnesi Veritabanındaki kayıtları yönetmek için kullanılır.
Dim RS as new ADODB.Recordset
Rebord Nesnesinin başlıca komutları
.Open 'belirtilen SQL konumutunu işletir yada kaydı açar
.MoveNext 'bir kayıt ileri git
.MoveMovePrevious 'bir kayıt geri git
.MoveLast 'son kayıta git
.MoveFirst 'ilk kayıta git
.Move 'kayıta git
.EOF 'bayıt başı
.BOF 'kayıt sonu
.Recordcount 'kayıt sayısını verir
.Addnew 'yeni kayıt ekle
.Update 'değişiklikleri kaydet
.Delete 'üzerinde bulunulan kayıtı sil
.Close 'kayıt nesnesini kapat
Hemen bir kaç örnek verelim.

Örnek 1: Şimdi Personel data.mdb database'ine bağlanıp buradaki personel tablosundaki isimlerini List1'in içine ekleyelim.. Dim Conn As New ADODB.Connection Conn.ConnectionString="Provider=Microsoft.Jet.OLED B.4.0;
Data Source=C:\data.mdb"
Conn.Open Dim RS as new ADODB.Recordset
Rs.Open "Select * from personel",Conn,adOpenKeyset ,adLockOptimistic
Do until Rs.Eof
List1.AddItem Rs!Adi & " " & Rs!Soyadi
Rs.MoveNext
Loop
Rs.Close

Örnek 2: Şimdide data.mdb database'ine bağlanıp buradaki personel tablosuna yeni bir kayıt ekleyelim..
Dim Conn As New ADODB.Connection
Conn.ConnectionString="Provider=Microsoft.Jet.OLED B.4.0; Data Source=C:\data.mdb"
Conn.Open Dim RS as new ADODB.Recordset
Rs.Open "Select * from personel",Conn,adOpenKeyset ,adLockOptimistic
Rs.AddNew
'Kayıt Ekle Rs!Adi="mehmet" 'Fieldlere bilgileri yaz
Rs!Soyadi="yaradanakul" 'Fieldlere bilgileri yaz
Rs.Update 'Girilen bilgileri kaydet
Rs.Close 'Kayıt nesnesini kapat
İpucu: Yada bu işi Connection nesnesinede yaptırabiliriz hemde çok daha hızlı bir şekilde nasıl derseniz
Conn.Execute "SQL deyimi" komutu ile Conn.Execute "insert into personel(adi,soyadi) values('mehmet','yaradanakul')" işte
hepsi bu ne Recorset açtık nede dene kod yazdık.
Örnek 3: Şimdide data.mdb database'ine bağlanıp buradaki personel tablosundan kayıt silelim.
Dim Conn As New ADODB.Connection
Conn.ConnectionString="Provider=Microsoft.Jet.OLED B.4.0; Data Source=C:\data.mdb"
Conn.Open Dim RS as new ADODB.Recordset
Rs.Open "Select * from personel Where Adi='" & "mehmet" &"'",Conn,adOpenKeyset &_ ,adLockOptimistic
Rs.Delete
Rs.Close

İpucu: Bu işlemide Connection nesnesine yaptırabiliriz
Conn.Execute "delete from personel where Adi='mehmet'" ve hatta şöyle dersek yaptığımız işlemden kaç kaydın
etkilendiğinide öğrenebiliriz..
Conn.Execute "delete from personel where BolumNo="& 5 ,Sonuc
Msgbox Sonuc &" kayıt silindi!"
Şimdilik bukadar hatalarım var ise lütfen affedin. görüşmek üzere. (Fazla Kasmayın :) )
İRİS Bilgisayarlı Kontrol Sistemleri Boğazlıyan/Yozgat


ADODC1 ile Veritabanı Bağlantısı

1. ADRESLER.MDB adında bir MS Access veritabanı yaratılır.

2. DSN yaratılır. Sistem DSN olarak yaratılırsa daha iyi olur.

3. Visual Basic ‘ten yeni bir proje yaratılır Project / Components menüsünden Microsoft ADO Data Control 6.0 ve Microsoft Data Grid Control Toolbox’a eklenir. Aşağıdaki gibi bir form oluşturulur.

4. Formdaki Adodc1’e sağ tıklanır ve özelliklere gelinir.

5. Sonra Build ve Microsoft OLE DB Provider for ODBC Drivers seçilir. İleri denir. Veri kaynaklarından ADRESLER (bizim yarattığımız DSN) seçilir.

6. Sonra bağlantı test edilir.

7. Visual Basic projesinde ADODC özelliklerinden RecordSource bölümüne gelinir. Ve Comman Type adCmdText seçilir. (adCmdText; geçerli bir SQL yada diğer arama deyimine gereksinim duyar. adCmdTable ise geçerli bir tablo adına gereksinim duyar.)

8. Data Grid özelliklerinden DataSource özelliğine Adodc1 yazılır. Programı çalıştırdığımızda şöyle bir çıktı alınır.

9. Bunlar ayrıca çalışma zamanında da düzenlenebilir. Bunun için ConnectionString, CommandType ve RecordSource özelliklerine gerekli bilgiler yazılır.

With ADODC1
.ConnectionString=”ADRESLER” ‘Veri tabanına DSN bağlama
.CommandType=adCmdText ‘Komut tipi
.RecordSource=”Select * from ogrenciler” ‘İstenilen tablonun seçilmesi
End With

10 . DSN oluşturmadan yani bir ODBS tanımlamadan bir veri kaynağına bağlanacağı zaman ConnectionString özelliği düzenlenir.

With ADODC1
.ConnectionString=”driver=(SQL Server); server=(local);pwd=;uid=sa;database=ADRESLER”
‘Veri tabanına DSN bağlama
.CommandType=adCmdText ‘Komut tipi
.RecordSource=”ogrenciler” ‘İstenilen tablonun seçilmesi
End With

11. JET / OLE DB Provider ile veri kaynağına aşağıdaki kodlarla bağlanılır.

With ADODC1
.ConnectionString=”Provider=Microsoft.Jet.OLEDB.3. 51;DataSource=”&App.path&”\adresler.mdb”
‘Veri tabanına DSN bağlama
.CommandType=adCmdText ‘Komut tipi
.RecordSource=”SELECT [SIRA], [OKUL NO] FROM ogrenciler” ‘İstenilen tablonun seçilmesi
End With

12. Eğer DSN ile tanımlamışsak Data Grid içerisinde verilerimiz otomatik görülecektir. Çünkü Data Grid DataSource özelliğini Adodc1 yapmıştık. Ancak bunu çalışma zamanında da yapabiliriz. Data Grid içerisine verilerin yerleşmesini sağlamak için aşağıdaki kodu ekleyeceğiz.

Private sub Command1_Click()
With ADODC1
.ConnectionString=”Provider=Microsoft.Jet.OLEDB.3. 51;DataSource=”&App.path&”\adresler.mdb”
.CommandType=adCmdText
.RecordSource=”ogrenciler”
End With

Set DataGrid1.DataSource=ADODC1
End sub

13. Sorgu için de aşağıdaki kodu yazalım.
Private Sub Command1_Click()
'SORGUYU YİNELE
Adodc1.RecordSource = Text1.Text
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
End Sub




ADODB ile Veri Tabanındaki Tabloların Listesini Almak

Private Sub Form_Load()
Dim MyConn As New ADODB.Connection
Dim MyRs As New ADODB.Recordset
MyConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Yedek\Veritabanları\MyVT.mdb;Persist Security Info=True"
MyConn.Open
Set MyRs = MyConn.OpenSchema(adSchemaTables)
Do Until MyRs.EOF
If Mid(MyRs(2), 1, 4) <> "MSys" Then
List1.AddItem MyRs(2)
End If
MyRs.MoveNext
Loop
End Sub


Veri Tabanını Kod İle Onarma

Public Sub CompactDB(DBName As String)
Dim jr As JRO.JetEngine
Dim strOld As String, strNew As String
Dim x As Integer

Set jr = New JRO.JetEngine

strOld = DBName
x = InStrRev(strOld, "\")
strNew = Left(strOld, x)
strNew = strNew & "chngMe.mdb"

' Access 97 için Engine Type = 4
' Access 2000 için Engine Type = 5
jr.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password=q; Data Source=" & strOld, _
"Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password=q;Data Source=" & strNew & ";Jet OLEDB:Engine Type=5"

Kill strOld
DoEvents
Name strNew As strOld

Set jr = Nothing

End Sub



Access Veritabanlarında Güvenlik Eksikliği

Benim bildiğim kadarıyla access te yaratılmış bir veri tabanı 100bin kayıta ulaşmadan çöküyor. Elbetteki güvenilecek bir sistem değil. Bi kere sözde bir password koruması var. Belli karakterlerle Xor lama işlemi yapılarak şifreniz mdb nin içine kaydediliyor. ve aşağıdaki kod bunu kırıyor

Private Function AccessPassword(ByVal FileName As String) As String
Dim MaxSize, NextChar, MyChar, SecretPos, TempPwd
Dim secret(12)
secret(0) = (&H86)
secret(1) = (&HFB)
secret(2) = (&HEC)
secret(3) = (&H37)
secret(4) = (&H5D)
secret(5) = (&H44)
secret(6) = (&H9C)
secret(7) = (&HFA)
secret(8) = (&HC6)
secret(9) = (&H5E)
secret(10) = (&H28)
secret(11) = (&HE6)
secret(12) = (&H13)

SecretPos = 0

Open FileName For Input As #1
For NextChar = 67 To 79 Step 1
Seek #1, NextChar
MyChar = Input(1, #1)
TempPwd = TempPwd & Chr(Asc(MyChar) Xor secret(SecretPos))
SecretPos = SecretPos + 1
Next NextChar

Close #1
AccessPassword = TempPwd
txt_sifre.Text = AccessPassword
End Function

Access veri tabanları sürekli olarak bozuluyor ve sözüm ona bir onarma işlemi ile boyutu bilmem kaç katına çıkıyor.

Kısacası hiçbir şekilde güvenli bir sistem değil. Güvenilir bir sistem de değil. Access ile kendiniz için birşeyler yapın ama iş olarak kesinlikle bulaşmayın derim ben. SQL Server veya ORACLE kullanmak hala en iyi çözüm.






Access ile basit bir login programı

Öncelikle accessten bir veritabanı yaratıyoruz, bir tablo oluşturup Username ve Passwordalanları ekliyoruz, bir kullanıcı adı ve şifre belirledikten sonra VB projemizi açıyoruz ve iki tane form ekliyoruz. (Form1, Form2) Daha sonra Form1'e iki adet textbox, üç adet commandbuton ekliyoruz. Bunların hepsini yaptıysanız sıra geldi kodlara aşağıdaki kodları Form1'in kod bölümüne kopyala yapıştır yapın.


Option Explicit
Dim cn As New ADODB.Connection, strCNString As String
Dim rs As New ADODB.Recordset
Dim Txt As String

Private Sub Command1_Click()

On Error GoTo ErrHandler
strCNString = "Data Source=" & App.Path & "\database.mdb" 'database adını yazın.
cn.Provider = "Microsoft Jet 4.0 OLE DB Provider"
cn.ConnectionString = strCNString
cn.Properties("Jet OLEDB:Database Password") = "şifre" 'Database şifreli ise buraya şifreyi yazın
cn.Open
With rs

.Open "Select * from Tablo1 where Username='" & txtname.Text & "' and Password='" & txtpass.Text & "'", cn, adOpenDynamic, adLockOptimistic
If .EOF Then
MsgBox "Lütfen Kullanıcı adı ve parolanızı kontrol ediniz!", vbOKOnly + vbCritical, "Security Login"
txtname.Text = ""
txtpass.Text = ""
txtname.SetFocus
cn.Close
Else
Txt = "" & " " & UCase$(txtname.Text) & ""
MsgBox "HOŞGELDİN!!!" & Txt, vbOKOnly + vbExclamation, "Giriş"
cn.Close
Unload Me
Form2.Show

End If
End With

Exit Sub

ErrHandler:
MsgBox Err.Description, vbCritical, "Giriş"
cn.Close
End Sub

Private Sub Command3_Click()
Unload Me
End Sub

Private Sub Command2_Click()
On Error Resume Next
If Text1.Text = "" Then GoTo message
strCNString = "Data Source=" & App.Path & "\database.mdb" 'database adını yazın
cn.Provider = "Microsoft Jet 4.0 OLE DB Provider"
cn.ConnectionString = strCNString
cn.Properties("Jet OLEDB:Database Password") = "şifre" 'Database şifresi varsa
cn.Open
rs.Open "Select * from Tablo1", cn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs(0) = Text1.Text
rs(1) = Text2.Text
rs.Save
cn.Close
rs.Close
MsgBox "Kullanıcı adı ve şifre yaratıldı.", vbInformation, "Onaylama"
Exit Sub
message:
MsgBox "Kullanıcı adı ve şifre yazmalısınız.", vbCritical, "Hata"
End Sub

Private Sub Form_Load()
cmdRegister.Enabled = False
End Sub

Private Sub Text2_Change()
cmdRegister.Enabled = True
End Sub

Çeşitli kaynaklardan yararlanılarak tarafımca düzenlenmiştir.Umarım sizlerinde işine yarar bir döküman olur..Yazılımcı olmama rağmen vermem gereken bir ödev konusuydu kendileri :)
BaDForgeR çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-04-06, 11:11   #2
Eski Üye
 
Giriş Tarihi: 27-10-2005
Yer: yurt Türkiye...
Mesajlar: 712
Rep Puanı: 2667482
tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1
Rep Gücü: 26734
Talking Cvp: Visual Basic'de Veri Tabanı { Düzenleme By ForgeR }


Dostum saolasın devamını bekliyoruz.Başarılarınla bizi aydınlatıyorsun her zaman eywallah.Hemen dokuman bolumune atıyorum
tlmusti çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-04-06, 12:03   #3
● 100 Yaşında Mutlu Ol ●
 
Giriş Tarihi: 18-05-2005
Yer: OBSCURE
Mesajlar: 3,030
Rep Puanı: 1549603
BaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: SıfırBaDForgeR Rütbe: Sıfır
Rep Gücü: 15584
Varsayılan Cvp: Visual Basic'de Veri Tabanı { Düzenleme By ForgeR }


musti yapma dostum alttada belirttiğim gibi ve bildiğin gibi bi ödev içindi bu döküman..

bulduğum buluşturduğum bu kadar walla

dökümanların arasına girecek kalitedeyse ne mutlu bana
BaDForgeR çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-04-06, 12:22   #4
Eski Üye
 
Giriş Tarihi: 27-10-2005
Yer: yurt Türkiye...
Mesajlar: 712
Rep Puanı: 2667482
tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1tlmusti Rütbe: Artı 1
Rep Gücü: 26734
40 Cvp: Visual Basic'de Veri Tabanı { Düzenleme By ForgeR }


Ne demek dostum her programlama konusu ve ilgimi çeken her konu benim için değer kaydeder bunlardan biriside bu ellerine sağlık ben zaten senden istemiştim hatırlarsan;emek harcamışsınya o yeter
tlmusti çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-12-07, 12:42   #5
Yabancı
 
Giriş Tarihi: 15-03-2007
Yaş: 26
Mesajlar: 4
Rep Puanı: 2375
serkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfırserkan1436 Rütbe: Sıfır
Rep Gücü: 0
Varsayılan C: Visual Basic'de Veri Tabanı { Düzenleme By ForgeR }

çok güzel..ellerine sağlık..baya bi işe yaradı..özellikle veri tabanına bilgi kaydetme..
serkan1436 çevrimdışı   Alıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı



Tüm saatler GMT +3. Şuan saat: 22:13
(Türkiye için GMT +2 seçilmelidir.)


(*) www.firmaniz.com Domain, Alan adı tescili sadece 11,95 TL!
Bir başkası almadan hemen alan adınızı tescil ettirin...
(*) SiteBAZ ile Web tasarımı sadece 5,95 TL!
Birkaç dakikada web sitenizi kurup, hemen yeni müşteriler kazanın!
www.ihs.com.tr

ForumTR Servisleri: ForumTR Video - ForumTR Haber - ForumTR Oyun - ForumTR Chat - ForumTR Mail - ForumTR IRC

Vize İşlemi | Haberler | Okul Arkadaşım

Sitemiz bir forum sitesi olduğu için kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir.
Bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir.
Yine de sitemizde yasalara aykırı unsurlar bulursanız sikayet@frmtr.com email adresine bildirebilirsiniz.
Dikkat: Bu site şikayet sitesi değildir, arızalı ürünleriniz ve diğer şikayetleriniz için bu email adresini kullanmayınız.
Report Abuse, Harassment, Scamming, Hacking, Warez, Crack, Divx, Mp3 or any Illegal Activity to abuse@frmtr.com


Search Engine Optimization by vBSEO

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562