Skip to main content

AccessTr.neT


Tablodaki Kişileri Aynı Tabloya Eklemek Veya Kopyalamak

Tablodaki Kişileri Aynı Tabloya Eklemek Veya Kopyalamak

#7
feraz üstat;
gelen kod ile ay_id si 1 olan kayıtlar ay_id si 2 oldu o kadar.
yapmak istediğim :ay_id 1 olanlar kalacak ,kaldığı gibi ay_id 2 olacak şekilde yeni kayıt olarak tekrar eklenecek.
Cevapla
#8
Dosyada sonucun nasıl çıkacağını gösterirmisiniz.Tabloyu kopyalayıp yapabilirsiniz.

Çünkü tam anlaşılmıyor.
Cevapla
#9
[img]‪C:\Users\Feridun\Pictures\ayaktarma.PNG[/img]
resim eklendimi bilemedim ama olay sonunda hesap  tablosu alttaki gibi olmalı

ay_id      kişi_id     isim    soyisim     ödemekalemleri(aidat,su,elek,gaz,vb)
1              1           a
1              2           b
1              3           c
1              4           d
2              1           a
2              2           b
2              3           c
2              4           d
Cevapla
#10
Tamam anladım.
Cevapla
#11
(02/02/2020, 16:01)mehmetdemiral yazdı: 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.
Üstadım kastettiğiniz sorguları yapmaya çalıştım.ama aktarma kodlarını bilmiyorum..
.rar SİTE_YÖNETİMİ_1.rar (Dosya Boyutu: 99,34 KB | İndirme Sayısı: 2)
Cevapla
#12
Kodları tek tek kopyalayınız.

Alttaki işaretli olanlarda seçili olmalı.
[Resim: do.php?img=9515]

Option Compare Database

Dim Sql As String
Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset

Sub loopTable(alan As Byte)

Dim k As Integer

    With rs
    If Not .BOF And Not .EOF Then
        For i = 1 To .RecordCount
          .AddNew
            .Fields(1) = rs1.Fields(1)
            .Fields(2) = alan
            For k = 3 To rs.Fields.Count - 1
              .Fields(k) = rs1.Fields(k)
            Next k
          rs.Update
          rs.MoveNext
          rs1.MoveNext
      Next i
 
    End If
    End With

End Sub

Sub baglan()
  With rs
        If .State = adStateOpen Then .Close
          .CursorLocation = adUseClient
          .CursorType = adOpenKeyset
          .LockType = adLockOptimistic
       
        .Open Sql, cn
    End With

    With rs1
        If .State = adStateOpen Then .Close
          .CursorLocation = adUseClient
          .CursorType = adOpenKeyset
          .LockType = adLockOptimistic
        .Open Sql, cn
    End With
End Sub

Private Sub Aktar_Click()
 
  If Me.cmbay1.Value = "" Or IsNull(cmbay1.Value) Then GoTo son
    If cmbay2.Value = "" Or IsNull(cmbay2.Value) Then GoTo son
 
  Sql = "SELECT * FROM hesap where ay_id= " & cmbay1.Column(0) & ""
  Set cn = CurrentProject.Connection
   
  Call baglan
  Call loopTable(cmbay2.Column(0))

 
  Sql = "SELECT * FROM hesap where ay_id= " & cmbay2.Column(0) & ""
  rs.Close
  rs.Open Sql, cn
 
    Liste15.ColumnCount = rs.Fields.Count ' 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

    Set rs1 = Nothing
    Set cn1 = Nothing

  Exit Sub
   
son:
  MsgBox "Combolar bos olamaz", vbCritical
End Sub
.rar SİTE_YÖNETİMİ1.rar (Dosya Boyutu: 136,38 KB | İndirme Sayısı: 1)
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task