- Katılım
- 12 Ocak 2009
- Mesajlar
- 838
- Excel Vers. ve Dili
- 2003
- Altın Üyelik Bitiş Tarihi
- 07-02-2024
Merhaba arkadaşlar.
Kod bloğu ile access veritabanına kayıt yapıyorum.
Bu işlem sırasında alanlardan her hangi birisi referans olarak seçilip; alfabetik, küçükten büyüğe, büyükten küçüğe olarak sıralanması ve sıralama sonrası yeniden sıra numarası verdirilebilirmi?
Normalde vba makro ile excell sayfasında bu işlem aşağıdaki kod bloğu ile yapılabiliyor ancak veritabanında bu işlem nasıl olur bilemiyorum.

Kod bloğu ile access veritabanına kayıt yapıyorum.
Kod:
Private Sub cmdKAYDET_Click()
If Not FrameTest Then Exit Sub
If OptionButton1.Value = True Then 'Yeni Kayıt
If TextBox2.Text = "" Then
TextBox2.SetFocus
MsgBox ("Lütfen Adı - Soyad Bilgisi Girin..."), vbInformation, "Süleyman SAVAŞ"
Exit Sub
End If
If Me.TextBox2 <> "" Then
If KayitliMi(TextBox2.Value, 0) = True Then Exit Sub
End If
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
Call BAGLANTI
rs.Open "select top 1 * from resmi_tatil ", baglan, 1, 3
rs.AddNew
rs("tatil_gunu") = TextBox2.Text
rs("tatil_aciklama") = TextBox3.Value
rs("alt_birim") = ComboBox3.Value
rs("islem_tarihi") = tarih.Value
rs("kullanici") = Sheets("RESMI_TATILLER").Range("AY1")
rs("pc_adi") = pc_adi.Value
rs("local_ip") = local_ip.Value
rs("public_ip") = public_ip.Value
rs("mac_adresi") = mac_adr.Value
rs.Update
rs.Close
listeye_al
temizle
End If
If OptionButton2.Value = True Then 'Güncelle
If TextBox2.Text = "" Then
TextBox2.SetFocus
MsgBox ("Lütfen Listeden çift tık ile kişi seçin ..."), vbInformation, "Süleyman SAVAŞ"
Exit Sub
End If
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
Call BAGLANTI
rs.Open "select * from resmi_tatil where resmi_tatil.KIMLIK like '%" & txKimlik.Text & "%'", baglan, 1, 2
If rs.RecordCount > 0 Then
rs("tatil_gunu") = TextBox2.Text
rs("tatil_aciklama") = TextBox3.Value
rs("islem_tarihi") = tarih.Value
rs("kullanici") = Sheets("RESMI_TATILLER").Range("AY1")
rs("pc_adi") = pc_adi.Value
rs("local_ip") = local_ip.Value
rs("public_ip") = public_ip.Value
rs("mac_adresi") = mac_adr.Value
rs.Update
MsgBox TextBox3 & " adlı kayıt başarı ile güncellendi.", , "Süleyman SAVAŞ"
End If
rs.Close
listeye_al
temizle
End If
If OptionButton3.Value = True Then 'Sil
On Local Error Resume Next
Dim nosil As Integer
Dim perno As String
If txKimlik = "" Then
MsgBox "Önce listeden çift tıklayarak bir veri seçin.", vbCritical + vbOKOnly, "Süleyman SAVAŞ"
Exit Sub
End If
Dim kimlik As Integer
kimlik = txKimlik
perno = UserForm4.Controls("txKimlik").Value
sor = MsgBox(TextBox2 & " isimli kayıt silinecek. " & Chr(10) & "Devam edeyim mi ?", vbYesNo + vbCritical + vbDefaultButton2, "Dikkat")
If sor = vbNo Then Exit Sub
Call BAGLANTI
Set rs = baglan.Execute("DELETE FROM resmi_tatil WHERE KIMLIK=" & kimlik)
Set baglan = Nothing: Set rs = Nothing:
MsgBox TextBox2 & " Kayıt silindi.", vbInformation + vbOKOnly, "Süleyman SAVAŞ"
Label70.Caption = "Toplam tatil gün sayısı= " & ListView1.ListItems.Count
listeye_al
temizle
End If
End Sub
Normalde vba makro ile excell sayfasında bu işlem aşağıdaki kod bloğu ile yapılabiliyor ancak veritabanında bu işlem nasıl olur bilemiyorum.
Kod:
Sub sirala()
Range("B3:L3").Select
Range("A2:L71").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Sub siranover1()
Satır = Range("A65536").End(3).Row
If Satır = 3 Then
Cells(3, 1) = 1
ElseIf Satır > 2 Then
Cells(3, 1) = 1
Range("A3:A" & Satır).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1
End If
End Sub

