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.
Tablodaki Kişileri Aynı Tabloya Eklemek Veya Kopyalamak
Dosyada sonucun nasıl çıkacağını gösterirmisiniz.Tabloyu kopyalayıp yapabilirsiniz.
Çünkü tam anlaşılmıyor.
Çünkü tam anlaşılmıyor.
[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
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
Tamam anladım.
(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..
Kodları tek tek kopyalayınız.
Alttaki işaretli olanlarda seçili olmalı.
Alttaki işaretli olanlarda seçili olmalı.
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
Konuyu Okuyanlar: 3 Ziyaretçi