Skip to main content

AccessTr.neT


Tablodaki Kişileri Aynı Tabloya Eklemek Veya Kopyalamak

Tablodaki Kişileri Aynı Tabloya Eklemek Veya Kopyalamak

Çözüldü #1
Üstatlara ve tüm üyelere selamlar.
yapmak istediğim proje gereği, 12 ay boyunca aynı kişileri ve hesapları  ay başlığı altında tutacağım 
ocak ayındaki kişileri şubat ayına daha sonra şubattan mart a gibi aktaracağım. mümkünmüdür.
aktarma detayları ve proje ektedir. "ayaktar" formunu açınca göreceksiniz
.rar SİTE_YÖNETİMİ.rar (Dosya Boyutu: 121,98 KB | İndirme Sayısı: 6)
Cevapla
#2
Tablo yapınız yanlış. Aylar için sadece ay id ve adını bulunduran bir tablo yapın. Ay içindeki hareketler için de ayrı bir tablo yapın yıl ve ay bilgisi olsun. Bu arada o ay için kaydedilecek kişiler de bu tabloda olsun. Sonra da bir güncelleştirme sorgusu yapın, kriter olarak açılan kutu verilerinize bağlı bir güncelleme sorgusuyla, aynı kişilere ait bilgilerin sadece ay id değerini 1 iken 2 yapıp tabloya eklesin. Yapmaya çalışın, başaramazsanız yardımcı oluruz.
Cevapla
#3
Listboxtta listelemek istiyorsanız alttaki kodu deneyebilirsiniz.Tabii doğru anladıysam.

Sql =   buraya ilgili alan adlarını giriniz ben isime kadar yazdım.


Visual Basic Code
Private Sub Aktar_Click()
    
    
    Dim Sql As String
    Dim rs As Object
    Dim cn As Object
    
    Set rs = CreateObject("ADODB.Recordset")
    Set cn = CreateObject("ADODB.Connection")
    
    Sql = "select id,ap_id,replace(ay_id,'" & cmbay1.Column(0) & "','" & cmbay2.Column(0) & "') as [ay id],kisi_id,tcno,isim from hesap where [ay_id] = " & cmbay1.Column(0) & ""
    
    If Me.cmbay1.Value = "" Or IsNull(cmbay1.Value) Then GoTo son
    If cmbay2.Value = "" Or IsNull(cmbay2.Value) Then GoTo son

    
        With cn
        If .State = adStateOpen Then
            .Close
            Set cn = Nothing
        End If
    End With

    Set cn = CurrentProject.Connection
    
    With rs
        If .State = adStateOpen Then .Close
        .CursorType = adOpenDynamic
        .CursorLocation = 3
        .LockType = adLockOptimistic
        .Open Sql, cn
    End With
    
  
    Liste15.ColumnCount = rs.Fields.Count
    Liste15.ColumnWidths = "1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM"
    Liste15.ColumnHeads = True

    Set Liste15.Recordset = rs

    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
  Exit Sub
.rar SİTE_YÖNETİMİ.rar (Dosya Boyutu: 140,85 KB | İndirme Sayısı: 1)
Cevapla
#4
feraz üstat  yanlış anlamışsınız.hesap tablosundaki ay_id:1olanları yine aynı tabloda ay_id=2 olacak şekilde yeniden kaydetmek  istiyorum
Cevapla
#5
Visual Basic Code
strSQL = "UPDATE hesap " & _
                    "SET ay_id = " & cmbay2.Column(0) & " WHERE ay_id = " & cmbay1.Column(0) & ""
        
        CurrentDb.Execute strSQL

Yukarıdaki kodu ekledim.


Visual Basic Code
Private Sub Aktar_Click()
    
    
    Dim Sql As String
    Dim rs As Object
    Dim cn As Object
    
    Set rs = CreateObject("ADODB.Recordset")
    Set cn = CreateObject("ADODB.Connection")
    
    Sql = "select id,ap_id,replace(ay_id,'" & cmbay1.Column(0) & "','" & cmbay2.Column(0) & "') as [ay id],kisi_id,tcno,isim from hesap where [ay_id] = " & cmbay1.Column(0) & ""
    
    If Me.cmbay1.Value = "" Or IsNull(cmbay1.Value) Then GoTo son
    If cmbay2.Value = "" Or IsNull(cmbay2.Value) Then GoTo son

    
        With cn
        If .State = adStateOpen Then
            .Close
            Set cn = Nothing
        End If
    End With

    Set cn = CurrentProject.Connection
    
    With rs
        If .State = adStateOpen Then .Close
          .CursorLocation = adUseClient
          .CursorType = adOpenKeyset
          .LockType = adLockOptimistic
        
        .Open Sql, cn
    End With
    
  
    Liste15.ColumnCount = rs.Fields.Count
    Liste15.ColumnWidths = "1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM"
    Liste15.ColumnHeads = True

    Set Liste15.Recordset = rs
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing


strSQL = "UPDATE hesap " & _
                    "SET ay_id = " & cmbay2.Column(0) & " WHERE ay_id = " & cmbay1.Column(0) & ""
        
        CurrentDb.Execute strSQL


  Exit Sub
    
son:
  MsgBox "Combolar bos olamaz", vbCritical
End Sub
Cevapla
#6
Alttaki gibi değiştirin kod kısaldı.

Not comboların adlarını değiştirmiştim kolaylık olsun diye cmbay1 ve cmbay2 olarak.

Visual Basic Code
Private Sub Aktar_Click()
    
    
    Dim Sql As String
    Dim rs As Object
    Dim cn As Object
    
    Set rs = CreateObject("ADODB.Recordset")
    Set cn = CreateObject("ADODB.Connection")
    
    
    If Me.cmbay1.Value = "" Or IsNull(cmbay1.Value) Then GoTo son
    If cmbay2.Value = "" Or IsNull(cmbay2.Value) Then GoTo son


    strSQL = "UPDATE hesap " & _
                    "SET ay_id = " & cmbay2.Column(0) & " WHERE ay_id = " & cmbay1.Column(0) & ""
        
        CurrentDb.Execute strSQL
    
      Sql = "select * from hesap"
    
    
        With cn
        If .State = adStateOpen Then
            .Close
            Set cn = Nothing
        End If
    End With

    Set cn = CurrentProject.Connection
    
    With rs
        If .State = adStateOpen Then .Close
          .CursorLocation = adUseClient
          .CursorType = adOpenKeyset
          .LockType = adLockOptimistic
        
        .Open Sql, cn
    End With
    
  
    Liste15.ColumnCount = rs.Fields.Count
    Liste15.ColumnWidths = "1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM;1CM"
    Liste15.ColumnHeads = True

    Set Liste15.Recordset = rs
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing

  Exit Sub
    
son:
  MsgBox "Combolar bos olamaz", vbCritical
End Sub
Son Düzenleme: 02/02/2020, 19:49, Düzenleyen: feraz.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da