Türkçe karaktere çevirme

1 2
16/04/2011, 08:38

kadirdursun

arkadaşlar;

sayın Bilgisayarcı'nın
aşağıdaki soruda verdiği örneği ekteki belgeme uygulayamadım. nerde hatam var dünden beri bulamadım. yardımcı olabilir misiniz?

https://accesstr.net/konu-tablo-da-turkc...ht=replace


Option Compare Database
Function ReplaceStr(str As String) As String
'Gelen değişken her ihtimale karşı büyük harfe döndürülüyor.
'üğişçö sırasıyla UGUSCO haline getiriliyor
'oluşan sonuç başındaki ve sonundaki boşluklardan kurtulup geriye atılıyor
str = UCase(str)
str = Replace(str, "Ü", "U", 1)
str = Replace(str, "Ğ", "G", 1)
str = Replace(str, "İ", "I", 1)
str = Replace(str, "Ş", "S", 1)
str = Replace(str, "Ç", "C", 1)
str = Replace(str, "Ö", "O", 1)
str = Replace(str, "ı", "I", 1)
ReplaceStr = Trim(str)
End Function
Private Sub Komut_Click()

Dim Alan1 As ADODB.Field
Dim Alan2 As ADODB.Field
Dim Alan3 As ADODB.Field

Dim KaySay As Integer
Dim numara As Integer
'Güncellenmesini istediğiniz tabloyu aşağıdaki şekilde yazıp açınız
'Select * from tablo1
'Örnek olması açısından 6 tane alan tanımladım.
'Bu örnek tablodaki 6 alanın hepsinde üğişçö ÜĞİŞÇÖ karekterleri var.

AdoAc1 ("Select * from KAYIT")

'Adoyu açtık aşağıdaki şekilde atamalarınızı yapın.
'Burada Alan Adı ile değişken adı aynı
'Sizi yanıltmasın değişkenleri istediğiniz isimle açabilirsiniz.
'örneğin ADSOYAD diye bir alanınız var. Bu durumda atama= set alan1=rs1.Fields("ADSOYAD")
'Değişkenleri bu şekilde set ederek işlemin daha hızlı olmasını sağlamaya çalıştım

Set Alan1 = Rs1.Fields("ILCE ADI")
Set Alan2 = Rs1.Fields("MAHALLE ADI")
Set Alan3 = Rs1.Fields("SOKAK ADI")




'durumu göstermek için atanan değişkenler.
'kaç kayıt güncellenecek,kaçıncı güncelleniyor göstermek için

KaySay = Rs1.RecordCount
numara = 0
Guncellenen = 0
While Not Rs1.EOF
DoEvents
numara = numara + 1
Durum.Caption = "Durum:" & numara & "/" & KaySay

'Her alanı teker teker gönderiyoruz.
'Fonksiyonun açıklaması yukarıda var.


Alan1 = ReplaceStr(Nz([ILCE ADI], " "))
Alan2 = ReplaceStr(Nz([MAHALLE ADI], " "))
Alan3 = ReplaceStr(Nz([SOKAK ADI], " "))


'Fonksiyon içinden dönen değerler alanlara atıldı. Update edelim ve bir sonrakine geçelim
Rs1.Update
Rs1.MoveNext
Wend
'Garbage collectorumuz yok,kendimiz yazalım...
'açılan adoyu kapa,fieldleri boşalt...
AdoKapa 1
Set Alan1 = Nothing
Set Alan2 = Nothing
Set Alan3 = Nothing

End Sub
16/04/2011, 15:56

Puletin

Sayın Kadirdursun sanırım aşağıdaki MOdülü eklemeyi unutmuşsunuz..

Option Compare Database
Option Explicit
'**********************************************************
'* Library of Bilgisayarcı Ado
'* www.accesstr.net kullanıcıları için
'* Bilgisayarcı tarafından tasarlanmıştır.
'**********************************************************
Global Rs1 As adodb.Recordset
Global Rs2 As adodb.Recordset
Global Rs3 As adodb.Recordset
Global RsEx As adodb.Recordset
Public Function AdoKapa(i As Integer) As Boolean
On Error GoTo AdoKapaHata
AdoKapa = False
Select Case i
Case 1
If Not Rs1 Is Nothing Then
If Rs1.State = adStateOpen Then Rs1.Close
End If
Case 2
If Not Rs2 Is Nothing Then
If Rs2.State = adStateOpen Then Rs2.Close
End If
Case 3
If Not Rs3 Is Nothing Then
If Rs3.State = adStateOpen Then Rs3.Close
End If
Case 4
If Not RsEx Is Nothing Then
If RsEx.State = adStateOpen Then RsEx.Close
End If
End Select
AdoKapa = True
Exit Function
AdoKapaHata:
AdoKapa = False
End Function
Public Function AdoAc1(sql As String) As Boolean
AdoAc1 = True
On Error GoTo AdoHata
If IsNull(Trim(sql)) Then Exit Function
AdoKapa 1
Set Rs1 = New adodb.Recordset
With Rs1
Set .ActiveConnection = CurrentProject.Connection
.Source = sql
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
AdoAc1 = True
Exit Function
AdoHata:
MsgBox Err.Description
AdoAc1 = False
End Function
Public Function AdoAc2(sql As String) As Boolean
AdoAc2 = False
On Error GoTo AdoHata
If IsNull(Trim(sql)) Then Exit Function
AdoKapa 2
Set Rs2 = New adodb.Recordset
With Rs2
Set .ActiveConnection = CurrentProject.Connection
.Source = sql
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
AdoAc2 = True
Exit Function
AdoHata:
MsgBox Err.Description
AdoAc2 = False
End Function
Public Function AdoAc3(sql As String) As Boolean
AdoAc3 = False
On Error GoTo AdoHata
If IsNull(Trim(sql)) Then Exit Function
AdoKapa 3
Set Rs3 = New adodb.Recordset
With Rs3
Set .ActiveConnection = CurrentProject.Connection
.Source = sql
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
AdoAc3 = True
Exit Function
AdoHata:
MsgBox Err.Description
AdoAc3 = False
End Function
Public Function AdoAcEx(sql As String) As Boolean
AdoAcEx = False
On Error GoTo AdoHata
If IsNull(Trim(sql)) Then Exit Function
AdoKapa 4
Set RsEx = New adodb.Recordset
With RsEx
Set .ActiveConnection = CurrentProject.Connection
.Source = sql
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
AdoAcEx = True
Exit Function
AdoHata:
MsgBox Err.Description
AdoAcEx = False
End Function
17/04/2011, 05:36

Yandemir

Formdaki butonda DAO kullandım. çalışırken lock hatası verebilir. birde her ihtimale karşı UpdateQuery yaptım. Sorgu kesin çözüm hatasız çeviriyor..
18/04/2011, 07:57

kadirdursun

sayın puletin;
önceki denemelerimde onuda eklemiştim ama

KaySay = Rs1.RecordCount


satırında hata verdi.
18/04/2011, 08:03

kadirdursun

sayın Yandemir;

numara = numara + 1

satırında hata verdi
18/04/2011, 08:08

emturker

Sn.kadirdursun Yandemir Hocamın Eklediği Örnekteki Sorguyu Çalıştırın.
15 Dk.Civarı Sürüyor, Hepsini Düzeltiyor.
1 2