AccessTr.neT

Tam Versiyon: Listeden Çoklu Seçilen Elemanları Diğer Listeye Sağ Tık İle Kesip Yapıştırmak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Olay şu arkadaşlar üç adet listemiz var 
liste1 den çoklu seçim yapacağız
sonra liste1 de sağ tık ile cut diyeceğiz
liste2 ye gideceğiz ve sağ tık yapıp copy dediğimizde
liste1 de seçili elemanlar liste2 ye taşınmış olacaklar
mantık basit gibi gözüküyor ama nasıl yapacağımı bilemedim
Bir önceki konunuzda GSecili ile zaten değerlerin nasil hafızaya alındığı gosterilmis yapmanız gereken bu değerin bir benzerini olusturp yine önceki konunuzdaki gibi split ile ayırıp listeye eklemek
sn@berduş
örneği biraz değiştirdim çünkü asıl olması gereken zaten bu idi yeni şekli
bir tabloda isimler var her isimin hangi listede olduğunu gösteren listId değeri var
listId değerine göre liste1,2,3 de listeleniyor
bizde sağ tık ile kesip yapıştırarak listeden diğer listeye taşıyacağız
yani bu durumda seçilen elemanların listId değerini update edeceğiz
yeni listesinin adına göre listId değerini nasıl güncelleyebiliriz
Public Function güncelle(eski As String, ByVal yeni As Integer)
    Dim i As Variant
    Dim rstkayit As New ADODB.Recordset
    Dim strSQL As String
   
    strSQL = "UPDATE Tablo1 SET listId =" & Right(yeni, 1) & " WHERE id =" & eski & ";"
    CurrentProject.Connection.Execute strSQL

End Function
güncellemek için eski listenin liste isminin son karakterini ve yeni liste isminin son karakterini fonksiyona göndereceğiz
bunları nasıl birleştireceğiz
kopyalama fonksiyonunu aşağıdaki gibi düzenlerseniz seçili ögelerin ID değerini almış olursunuz
Function fCopy()
Dim varItm As Variant
Dim frm As Form
Dim Ctl As Control

Set frm = Screen.ActiveForm
Set Ctl = Screen.ActiveForm.ActiveControl
On Error Resume Next
    Application.CommandBars.ExecuteMso ("Copy")
            KpySecili = ""
        For Each varItm In Ctl.ItemsSelected
            KpySecili = KpySecili & "," & Ctl.Column(0, varItm)
        Next varItm
        KpySecili = Mid(KpySecili, 2)

End Function
güncelle fonksiyonunun nerede nasıl kullanacağınızı bilemediğim için onu eklemedim
ama KpySecili ile zaten değiştirlecek kayıtların IDleri alındığınıdan
currentdb.execute "" ile çağrılabilir
yapıştır fonksiyonuna eklenen form1deki güncelleme fonksiyonu
Function fPaste()
On Error Resume Next
    Application.CommandBars.ExecuteMso ("Paste")
    Form_Form1.guncelle
End Function
güncelleme fonksiyonu taşsıma işleminden sonra sadece aktif nesneyi yeniler
Public Function guncelle()
    Dim i, YnDgr As Variant
    Dim strSQL As String
    Debug.Print "KpySecili ", KpySecili
    YnDgr = Right(ActiveControl.Name, 1)
    strSQL = "UPDATE Tablo1 SET listId =" & YnDgr & " WHERE id in (" & KpySecili & ");"
    CurrentDb.Execute strSQL
    ActiveControl.Requery
End Function
Benim kisisel dusuncem, olmuyorsa zorlamayacaksin, birakacaksin. benden bir gun sonra 31.10.2008'de uye olmussunuz. 700'den fazla konu acip cevap almissaniz ve verilen uc satirlik kodu uygulayamayacaksan birakacaksin, kimseyi mesgul etmeyeceksin, sonra program yaziyorum demeyeceksin, bu benim forumdakiler icin kisisel dusuncemdir, ayrica hic altin uye oldunuz mu onuda merak ediyorum,
Sayfalar: 1 2