Skip to main content

AccessTr.neT


İki tabloya kayıtta şart

İki tabloya kayıtta şart

Çözüldü #1

Private Sub Listele(ByVal Sql As String)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='tablolar.mdb'") 'Veritabanımızın yerini belirtiyoruz.
Dim veriler As New DataTable("data")
Dim adapter As New OleDbDataAdapter(SQL, baglanti)
adapter.Fill(veriler) 'buradaki veriler oluşturduğumuz sanal tablo.
DataGridView1.DataSource = veriler 'veri tabanından gelen kayıtları DataGridView'e aktarıyoruz .
End Sub


Private Sub doldur()
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='tablolar.mdb'")
baglanti.Open()
Dim komut As New OleDb.OleDbCommand("SELECT firmaad FROM data ORDER BY firmaad", baglanti)
Dim oku As OleDb.OleDbDataReader
oku = komut.ExecuteReader()
baglanti.Close()
End Sub


'kaydet
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Sql As New String("INSERT INTO data (firmaad,adres) values ('" & TextBox1.Text & "', '" & TextBox2.Text & "')")
Dim sql2 As New String("INSERT INTO ortak (firmaad,ortakad,ortakadres) values ('" & TextBox1.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "')")
Sql = String.Format(sql, TextBox1.Text)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='tablolar.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim komutnesnesi2 As New OleDb.OleDbCommand(sql2, baglanti)
Dim sonuc As Integer
Dim sonuc2 As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
sonuc2 = komutnesnesi2.ExecuteNonQuery()
If sonuc = 1 And sonuc2 = 1 Then
MsgBox("Yandaki Girdiğiniz Veriler Veri Tabanına Kayıt Olmuştur.", MsgBoxStyle.Exclamation, "Tebrikler")
End If
Listele("SELECT * FROM data'")
baglanti.Close()
End Sub


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Listele("SELECT * FROM data'")
doldur()
End Sub


'Temizle
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
Me.TextBox3.Text = ""
Me.TextBox4.Text = ""
End Sub


Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
TextBox1.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(0).Value), "", DataGridView1.CurrentRow.Cells(0).Value)
TextBox2.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(1).Value), "", DataGridView1.CurrentRow.Cells(1).Value)
'TextBox3.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(2).Value), "", DataGridView1.CurrentRow.Cells(2).Value)
'TextBox4.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(3).Value), "", DataGridView1.CurrentRow.Cells(3).Value)
End Sub

Bu kodlar ile "tablolar.mbd" veritabanımda "data" ve "ortak" tablosuna kayıtlarımı aktarıyorum...

Yapamadıklarım şunlardır:

- Eğer TextBox3 ve TextBox4 de veri yoksa "ortak" tablosuna veri kaydı yapılmasın

- DataGridView1 de öncelikle "data" ve yanında "ortak" tablosu gösterilsin

- DataGridView1 de bir firma tıklandığında "data" ve "ortak" tablolarındaki verileri textboxlara gelsin.

Eğer mümkünse isteğimde şudur:

- DataGridView1 de tıklanınca textboxlara gelen verileri düzenleme kodu

- DataGridView1 de tıklanınca textboxlara gelen verileri silme kodu

Teşekkürler...

Ek Dosyalar
 bagli1.rar(529.02 KB)

drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
Çözüldü #2

'kaydet
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Sql As New String("INSERT INTO data (firmaad,adres) values ('" & TextBox1.Text & "', '" & TextBox2.Text & "')")
Dim sql2 As New String("INSERT INTO ortak (datafirmaad,ortakad,ortakadres) values ('" & TextBox1.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "')")
Sql = String.Format(sql, TextBox1.Text)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='tablolar.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim komutnesnesi2 As New OleDb.OleDbCommand(sql2, baglanti)
Dim sonuc As Integer
Dim sonuc2 As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
sonuc2 = komutnesnesi2.ExecuteNonQuery()
If sonuc = 1 And sonuc2 = 1 Then
MsgBox("Yandaki Girdiğiniz Veriler Veri Tabanına Kayıt Olmuştur.", MsgBoxStyle.Exclamation, "Tebrikler")
End If
Listele("Select * from data inner join ortak on data.firmaad = ortak.datafirmaad")
baglanti.Close()
End Sub

1- Kaydetmeyi şu şekilde becerdim. Fakat text3 ve text 4 boş ise "ortak" tablosuna kayıt yapma şartını koyamadım.

2- Datagrid tıklanınca verileri textboxlarada getiriyor . Gelen verileri düzenleme ve silmeyi beceremedim.
drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
Çözüldü #3
Sn drummers;
if textbox1.text="" or textbox2.text="" then
'gerçekleştirilecek olaylar...
else
'gerçekleştirilecek olaylar...
end if
komutları ile istediğin koşulu sağlayabilirsin, hatırlatmış olayım.
Güncelleme ve silme için Sql oluşturmalısın.
Güncelleme için örn Sql : "UPDATE TabloAdı SET Alan1='abc' , Alan2=345 WHERE AlanNO=2"
Silme için örn Sql :"DELETE * FROM TabloAdı WHERE AlanNO=4"

Alıntı:DataGridView1 de öncelikle "data" ve yanında "ortak" tablosu gösterilsin
Nasıl bir tablo yapısıdır, ne yapmak istiyorsun, inan anlaşılmıyor.
data tablosu ile ortak tablosu arasında nasıl bir bağlantı-ilişki var inan çözemedim.
Saygılar, iyi çalışmalar.
*********
Kod, formül vs bilmek önemlidir ama mantığını yürütebilmek, nerede ve nasıl kullanılacağını bilmek daha önemlidir.
Cevapla
Çözüldü #4
(19/02/2012, 22:28)ayhan2122 yazdı: Sn drummers;
if textbox1.text="" or textbox2.text="" then
'gerçekleştirilecek olaylar...
else
'gerçekleştirilecek olaylar...
end if
komutları ile istediğin koşulu sağlayabilirsin, hatırlatmış olayım.
Güncelleme ve silme için Sql oluşturmalısın.
Güncelleme için örn Sql : "UPDATE TabloAdı SET Alan1='abc' , Alan2=345 WHERE AlanNO=2"
Silme için örn Sql :"DELETE * FROM TabloAdı WHERE AlanNO=4"

Alıntı:DataGridView1 de öncelikle "data" ve yanında "ortak" tablosu gösterilsin
Nasıl bir tablo yapısıdır, ne yapmak istiyorsun, inan anlaşılmıyor.
data tablosu ile ortak tablosu arasında nasıl bir bağlantı-ilişki var inan çözemedim.

Soruyu yanlış yazmışım.

Aşağıdaki kaydet kodu


'kaydet
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Sql As New String("INSERT INTO data (firmaad,adres) values ('" & TextBox1.Text & "', '" & TextBox2.Text & "')")
Dim sql2 As New String("INSERT INTO ortak (datafirmaad,ortakad,ortakadres) values ('" & TextBox1.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "')")
Sql = String.Format(sql, TextBox1.Text)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='tablolar.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim komutnesnesi2 As New OleDb.OleDbCommand(sql2, baglanti)
Dim sonuc As Integer
Dim sonuc2 As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
sonuc2 = komutnesnesi2.ExecuteNonQuery()

If sonuc = 1 And sonuc2 = 1 Then
MsgBox("Yandaki Girdiğiniz Veriler Veri Tabanına Kayıt Olmuştur.", MsgBoxStyle.Exclamation, "Tebrikler")
End If
Listele("Select * from data inner join ortak on data.firmaad = ortak.datafirmaad")
baglanti.Close()
End Sub

Textbox1.Text verisini ve Textbox2.Text verisini "data" tablosuna
Textbox1.Text verisini , Textbox3.Text verisini ve Textbox4.Text verisini "ortak" tablosuna kayıt etmekte

Kayıt Şartı Şu Olacak:
Textbox3.Text ve Textbox4.Text de veri varsa "ortak" tablosuna kayıt yapacak aksi halde

sadece Textbox1.Text verisini ve Textbox2.Text verisini "data" tablosuna kayıt yapacak.

Birde "kaydet" butunundaki kodların "düzenle" ve "sil" kodu lazım

Teşekkürler

Mantık şu: text1 ve text2 firma bilgileri, text3 ve text4 firmaya bağlı ortakların bilgileri





drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task