Çözüldü Sql ile Verileri Güncelleme ,Silme

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
1)Merhaba ekteki dosyamda StokKartFormunda Kart giriş formu mevcut bu formda verileri kaydedip wampserver sunucusuna ve Mysql8.0 veri tabanında görecek şekilde aktarmaları yapıyorum.Güncelleme ve Silme yapmak için Listview tablosuna tıklayıp verileri textboxlara ve combolara aktarıyor silme ve güncelleme işlemi yaptırmak istiyorum bu işlemler yapıldıktan sonra mysql ve wamp serverda 'da değişmesini istiyorum.

2) Arama formum mevcut Listview tablosu üzzerinde .Tablodaki verileri aynı şekilde wampserverdan sql ile çekmek istiyorum .Arama kodları mevcut .
 

Ekli dosyalar

  • Resim ekle1 (1) (1) (1).xlsm
    456 KB · Gösterim: 5
Çözüm
Local
Size kabaca bir örnek hazırladım. ListViewDoldur prosedürünü bütün hareketlerden sonra çağırdığıma dikkat etmenizi rica ediyorum.

Ayrıca Baglanti diye bir class oluşturup bütün ADODB nesnelerini orada tanımladım. her defasında bağlantı, kayıtseti, bağlantımetni gibi değişkenleri tekrar tekrar çağırmak zorunda kalmıyoruz.

Formun genel değişken tanımlama kısmına Dim b as Baglanti diye bir kere tanımladıktan sonra kullanacağımız olaylar ya da prosedürler içinde set b = new Baglanti şeklinde çağırarak classı kullanabiliyoruz.

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Evet o kısım önemli excel sayfasında bu işlemi yapıyor ,alt alta kayıtları sıralıyor fakat bunu myadmin de yapma imkanı varmı şöyle düşünüyorum mesela

('" & textbox1 & "', '" & textbox2 & "' ) şeklinde sırası ile yazmayı düşündüm ama vba kodlarına uyarmı onu kestiremedim
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Evet o kısım önemli excel sayfasında bu işlemi yapıyor ,alt alta kayıtları sıralıyor fakat bunu myadmin de yapma imkanı varmı şöyle düşünüyorum mesela

('" & textbox1 & "', '" & textbox2 & "' ) şeklinde sırası ile yazmayı düşündüm ama vba kodlarına uyarmı onu kestiremedim
Bence biz burada kavram karmaşası yaşıyoruz karşılıklı:)

Excel sayfasından mı veri göndereceğiz? Userformdaki textboxlardan mı?

Cevap "excel sayfasındaki bir listeden veri gönderilecek" şeklinde ise eve birden fazla kaydı tek bir butona tıklayarak gönderebiliriz. Hatta yanlış hatırlamıyorsam tek bir string değişkene birden fazla INSERT INTO deyimi ekleterek tek bir sorgunun sunucuya gönderilmesi ile bile yapılabiliyor diye biliyorum.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Cevap "userform üzerindeki textboxlardan veri gönderilecek" şeklinde ise burada ayrışıyoruz. Textboxlardaki verilerden ilk veriyi gönderdik diyelim, sonraki kayıtların verilerini nereden alacak peki? Textboxlardaki aynı kaydı tekrar tekrar göndermek gibi bir niyetiniz yoksa böyle bir şey mümkün değil.
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Hocam şöyle ekteki dosyada StokKartFormu varmı o formda 1 'er tane olacak şekilde tasarlamıştım .Mesela 3 tane ürün geldi bu ürünleri tek seferde forma girecek şöyleki ana projemde bu var 3 tane textbox bu textboxlara stok kodu girilecek (ayrı stok kodları) daha sonra ürün grubu var 3 tane içinde ürün grubu için textbox buraları form üzerinde doldurup alt alta sunucuya kaydedecek bu anlattığım form bende var çoklu kayıt şuan excel sayfasına kaydediyor ama ileriki zamanlarda yavaşlamalar olacak o yüzden sunucuya alıyorum verileri.

Userform üzerinden verileri göndereceğim hep farklı kayıt girilecek aynı değil stok kodlarını otomatik yapmıştım farklı stok koıdları atıyor buraya kadar herşey normal
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Daha sonra yeni sql sorularıyla görüşürüz hocam :)
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Hocam şöyle ekteki dosyada StokKartFormu varmı o formda 1 'er tane olacak şekilde tasarlamıştım .Mesela 3 tane ürün geldi bu ürünleri tek seferde forma girecek şöyleki ana projemde bu var 3 tane textbox bu textboxlara stok kodu girilecek (ayrı stok kodları) daha sonra ürün grubu var 3 tane içinde ürün grubu için textbox buraları form üzerinde doldurup alt alta sunucuya kaydedecek bu anlattığım form bende var çoklu kayıt şuan excel sayfasına kaydediyor ama ileriki zamanlarda yavaşlamalar olacak o yüzden sunucuya alıyorum verileri.

Userform üzerinden verileri göndereceğim hep farklı kayıt girilecek aynı değil stok kodlarını otomatik yapmıştım farklı stok koıdları atıyor buraya kadar herşey normal
Sistem kurgunuzu tam olarak bilmediğimden varsayımsal yorumlar yapabiliyorum. Kurguyu tam olarak bilmeden tam bir çözüme ulaşmanız mümkün değil. Sadece fikir verebilecek şeyler sunabiliriz size (en azından ben kendi adıma öyle düşünüyorum. Çünkü bir yerde yapacağımız bir değişiklik bilmediğimiz oraya bağlı sistemleri geri dönülemez şekilde bozabilir ya da farklı sebeplerden veri kayıplarına neden olabilir)

Ama size tavsiyem böyle sistemler tasarlarken kurguya önem vermeniz. Her bir formdaki her bir ihtimali değerlendirerek tasarlanmalı. Mesela siz formda her kayıt için 3 textbox dediğinizde bununla ilgili nasıl bir sistem tasarlanır diye düşünmeye başladığımda ihtimaller tansiyonumu yükseltti 😅
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Hocam merhaba kodları yazdım fakat çalıştırınca Listview ekranına veriler gelmedi.
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Hocam merhaba kodları yazdım fakat çalıştırınca Listview ekranına veriler gelmedi.
Formun üzerinde listview var, açılışta içine liste alıyorsunuz. Daha sql ile veritabanına kayıt gönderdikten sonra listviewde görüntüleyemiyorsunuz. Doğru mu anlıyorum?
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Evet tablo başlıkları geliyor fakat veriler yok verileri çekemiyorum listview tablosuna
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
EĞER yukarıda bahsettiğim gibi oluyorsa listviewe verileri alma mantığını sağlam oturtmak gerekiyor. Her işlemden sonra listview'in güncellenmesi ile ilgili kendi kullandığım yöntemi aşağıda göstereyim belki bir fikir verir.


Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.


Ayrıca yazdığım kodlar gerçek kodlar değil. Bu kodların gerçek kullanımında hata kontrolleri gibi durumlar yapılıyor. Ben sadece fikir vermesi açısından söyledim.
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
query kısmını bu şekilde dolduracağım değilmi tablo başlıkları ve textboxların aldığı değeler yada sadece tablo başlıkları



Sql = "insert into stokzimmetkayıt(Stok_Zimmet_ID,Stok_Kodu,FişNumarası,Ürün_Adı,Teslim_Edilen_Personel,Teslim_Eden_Anbar_Personeli,Ürün_Grubu,Grup_Koduİsmi,Stok_Cinsi,Teslim_Edilen_Birim,Birim,Adet,Ürün_Tip,Üretici_Firma,Marka_1,Marka_2,Durum,Kayıt_Tarihi,Seri_Numarası,Diğer_Bilgiler,Zimmet_Tarihi,İrsaliye_Numarası,GirişYapılan_Yer)values(" & text_id & ",'" & txtstok & "', '" & TextBox3 & "','" & textürünadı & "', '" & combo_personel & "', '" & ComboBox2 & "', '" & combourungrup & "','" & TextBox5 & "', '" & stok_combo & "','" & combo_teslim_edilen & "', '" & birim_combo & "'," & combo_adet & ", '" & ürün_combo & "', '" & combo_firma & "', '" & combo_marka1 & "','" & text_marka & "','" & combo_durum & "', '" & kayit_tarih & "', '" & text_seri & "','" & text_bilgi & "', '" & zimmet_tarih & "','" & text_irsaliye & "', '" & depo_combo & "')"
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
query kısmını bu şekilde dolduracağım değilmi tablo başlıkları ve textboxların aldığı değeler yada sadece tablo başlıkları



Sql = "insert into stokzimmetkayıt(Stok_Zimmet_ID,Stok_Kodu,FişNumarası,Ürün_Adı,Teslim_Edilen_Personel,Teslim_Eden_Anbar_Personeli,Ürün_Grubu,Grup_Koduİsmi,Stok_Cinsi,Teslim_Edilen_Birim,Birim,Adet,Ürün_Tip,Üretici_Firma,Marka_1,Marka_2,Durum,Kayıt_Tarihi,Seri_Numarası,Diğer_Bilgiler,Zimmet_Tarihi,İrsaliye_Numarası,GirişYapılan_Yer)values(" & text_id & ",'" & txtstok & "', '" & TextBox3 & "','" & textürünadı & "', '" & combo_personel & "', '" & ComboBox2 & "', '" & combourungrup & "','" & TextBox5 & "', '" & stok_combo & "','" & combo_teslim_edilen & "', '" & birim_combo & "'," & combo_adet & ", '" & ürün_combo & "', '" & combo_firma & "', '" & combo_marka1 & "','" & text_marka & "','" & combo_durum & "', '" & kayit_tarih & "', '" & text_seri & "','" & text_bilgi & "', '" & zimmet_tarih & "','" & text_irsaliye & "', '" & depo_combo & "')"
Evet o şekilde olacak. Ben "query" adında değişken tanımladıktan sonra "rs.open query, con, 3, 1" satırında kullandım.
Siz sql diye tanımlayıp "rs.open sql, BaglantiNesnenizinAdi, 3, 1" şeklinde kullanabilirsiniz.

Yukarıda yazdığım mantık her hareketten sonra listview nesnenizi güncelleyecek mantık. Ayrı bir Sub prosedüründe listview nesnenizi dolduran kodları yazarsınız, daha sonra ihtiyaç olan her yerde çağırabilirsiniz.

Projenizde ListViewDoldur() diye bir prosedür tanımladınız diyelim. Form açılışında UserForm_Initialize olayında çağırabilirsiniz. Ekleme mi yaptınız ekleme kodundan sonra hemen ListViewDoldur ile çağırabilirsiniz. Güncelleme mi yaptınız güncelleme kodundan sonra hemen ListViewDoldur ile çağırabilirsiniz. Böylece veritabanınızda gerçekleşen her değişimi anında listview nesnesinde görüntülemiş olursunuz.

Bu arada üstad Refaz Bey yazdığım örnek kodda kritik hatalar bulmuş, olayın genel mantığını anlatmak için kabaca örnek yazmıştım, oradaki hataları da yapmamaya dikkat etmek gerekir.
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Local
Size kabaca bir örnek hazırladım. ListViewDoldur prosedürünü bütün hareketlerden sonra çağırdığıma dikkat etmenizi rica ediyorum.

Ayrıca Baglanti diye bir class oluşturup bütün ADODB nesnelerini orada tanımladım. her defasında bağlantı, kayıtseti, bağlantımetni gibi değişkenleri tekrar tekrar çağırmak zorunda kalmıyoruz.

Formun genel değişken tanımlama kısmına Dim b as Baglanti diye bir kere tanımladıktan sonra kullanacağımız olaylar ya da prosedürler içinde set b = new Baglanti şeklinde çağırarak classı kullanabiliyoruz.
 

Ekli dosyalar

  • Örnek.zip
    52.9 KB · Gösterim: 4
Çözüm

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Baglanti classında default ConnectionString metni Class_Initialize olayında aşağıdaki gibi tanımlandı

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Kullanırken değiştirmek isterseniz ya buradan düzenleyin ya da kullandığınız olay ya da prosedür içinde aşağıdaki örnekteki gibi değiştirebilirsiniz.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Teşekkürler hocam Accses örneğiniz için ben yine aynı şekilde bu kodları yazsam phpmyadmin için çalışır değilmi..
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Teşekkürler hocam Accses örneğiniz için ben yine aynı şekilde bu kodları yazsam phpmyadmin için çalışır değilmi..


Private Sub Class_Initialize()
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
Set cmd = New ADODB.Command
m_ConnStr = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Data.accdb;Persist Security Info=False;"
End Sub


m_Constr kısmınıa sunucu bağlantı adı ve şifresini yazarak değiştireceğim doğrumudur.Yukarda yazdığınız örnektenmi drevam edeyim Sayın refazın yotum yaptığı yoksa verdiğniz örnektenmi .
 

Local

Bronz Üye
Kullanıcı Bilgileri
Katılım
19 Ağu 2023
Mesajlar
247
Aldığı beğeni
21
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan

aeGNoR hocam sunucudan verileri Listview tablosuna aktarma işlemini gerçekleştirdim desteğinizle arama formu için ne önerirsiniz ekteki ilk dosyamda arama formu mevcut verileri sunucudan çekerek filtreleme işlemini nasıl yapabiliriz.​

 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Üst