AccessTr.neT
Veri tekrarı - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Veri tekrarı (/konu-veri-tekrari.html)



Veri tekrarı - mehcengiz - 30/10/2012

Ekteki veritabanımdaki Tablo1 de Kimlik, İl, İlçe ve SeminerTarihi alanları var. İstediğim şu: Aynı il, ilçe ve tarihte ikinci bir seminer eklenmesin tabloya. Örneğin: Aydın ili Nazilli İlçesi 01/02/2012 tarihli iki tane veri olmasın.
Aynı ilçede farklı tarihte seminer düzenleyebiliriz.
veya;
aynı tarihte farklı bir ilçede de seminer düzenleyebiliriz.
bu sınırlamayı nasıl yapabilirim acaba?
ilginize teşekkür ederim.


Cvp: Veri tekrarı - Kur@l - 30/10/2012

En basit yöntem Tablonun tasarım görünümünde açarak il,ilçe,tarih alanlarını seçip Primary key yapmandır.
Araç çubuğundaki sarı anahtar komutu ile.
Kolay Gelsin.


Cvp: Veri tekrarı - mehcengiz - 31/10/2012

Teşekkür ederim


Cvp: Veri tekrarı - esrefigit - 05/11/2012

primary key yapılırsa tekrara izin verilse bile aynı ilçede seminer olabileceği için farklı tarihte sorun yaratır


Cvp: Veri tekrarı - Kur@l - 05/11/2012

Abi tarihide primary key yaptığımızdan farklı tarihlerde yapılmasına izin verecektir.


Cvp: Veri tekrarı - esrefigit - 06/11/2012

kod



Option Compare Database
Public rstkayit As ADODB.Recordset
Dim strSQL As String
Const tarfor = "\#mm\/dd\/yyyy\#"
Private Sub Komut16_Click()
Call arakaydet
End Sub
Function arakaydet()
Dim strWhere As String
' kriter alanlarını kontrol ediyoruz
If Len(Me.tarih & vbNullString) > 0 Then
strWhere = strWhere & "Tablo2.tarih= " & Format(Me.tarih, tarfor) & "AND "
End If
If Len(Me.ilce & vbNullString) > 0 Then
strWhere = strWhere & "Tablo2.ilce='" & Me.ilce & "' AND "
End If
If Len(Me.semineradi & vbNullString) > 0 Then
strWhere = strWhere & "Tablo2.semineradi='" & Me.semineradi & "' AND "
End If
' where ekleme ve fazla and leri kaldırma
If Len(strWhere) > 0 Then
strWhere = " WHERE " & Left(strWhere, Len(strWhere) - 4)
End If

strSQL = "SELECT * FROM Tablo2 " & strWhere & ";"
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenStatic, adLockReadOnly

If Not rstkayit.BOF And Not rstkayit.EOF Then
MsgBox "BU TARİH VE BU İLÇEDE YAZDIĞINIZ SEMİNER BULUNMAKTADIR."
Else
strSQL = "SELECT * FROM Tablo2 "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.AddNew
.Fields("tarih") = Me.tarih
.Fields("ilce") = Me.ilce
.Fields("semineradi") = Me.semineradi
.Update
End With
MsgBox "KAYDINIZ YAPILDI ALANLAR BOŞALTILDI"
Me.tarih = ""
Me.ilce = ""
Me.semineradi = ""
End If
End Function