Skip to main content

AccessTr.neT


32 Bit Access Dosyası

32 Bit Access Dosyası

#1
Kıymetli Hocalarım selamlar,

access dosyası daha öncesi 32 bit' te oluşturulduğu için; 64 bit' te açamıyorum;
bu konuda bir çözüm öneriniz var mıdır?

Teşekkürler,
iyi çalışmalar.
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
inceleyiniz
Modüllerdeki apideclaration satırlarında PTRSAFE deyimini kullanmalısınız. Hem 32 hem de 64 bit'te çalışması için mesela aşağıdaki biçimde olan kodları

Visual Basic Code
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByValhwndAsLong,ByValnCmdShowAsLong)AsLong

şu şekilde değiştirin:
Visual Basic Code
#If VBA7 Then
Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByValhwndAsLong,ByValnCmdShowAsLong)AsLong
#Else
Private Declare Function apiShowWindow Lib" user32" Alias "ShowWindow" (ByValhwndAsLong,ByValnCmdShowAsLong)AsLong
#EndIf

Böylece 32 bit için de 64 bit içim de sorun ortadan kalkar.

Bunu eklemeniz gerektiğini nereden mi anlayacaksınız?
Modüllerde "Private declare" ile başlayan kodlarda api kullanıldığı için 64 bit için sorun çıkar. Çünkü iki işletim sisteminde kullanılan api mantığı farklıdır. 32 bitlik işletim sisteminde kullanılan kodları yukarda verdiğim biçime dönüştürdüğünüzde her iki sistemde de sorunsuz çalışacaktır.

Bir uyarı: Eğer modülde Declare Function biçimi başında "private" olmadan kullanıldıysa o zaman da yine ptrsafe deyimini declare komutundan hemen sonra kullanmalısınız.
Cevapla
#3
(21/03/2025, 00:57)simendifer yazdı: inceleyiniz
Modüllerdeki apideclaration satırlarında PTRSAFE deyimini kullanmalısınız. Hem 32 hem de 64 bit'te çalışması için mesela aşağıdaki biçimde olan kodları

Visual Basic Code
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByValhwndAsLong,ByValnCmdShowAsLong)AsLong

şu şekilde değiştirin:
Visual Basic Code
#If VBA7 Then
Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByValhwndAsLong,ByValnCmdShowAsLong)AsLong
#Else
Private Declare Function apiShowWindow Lib" user32" Alias "ShowWindow" (ByValhwndAsLong,ByValnCmdShowAsLong)AsLong
#EndIf

Böylece 32 bit için de 64 bit içim de sorun ortadan kalkar.

Bunu eklemeniz gerektiğini nereden mi anlayacaksınız?
Modüllerde "Private declare" ile başlayan kodlarda api kullanıldığı için 64 bit için sorun çıkar. Çünkü iki işletim sisteminde kullanılan api mantığı farklıdır. 32 bitlik işletim sisteminde kullanılan kodları yukarda verdiğim biçime dönüştürdüğünüzde her iki sistemde de sorunsuz çalışacaktır.

Bir uyarı: Eğer modülde Declare Function biçimi başında "private" olmadan kullanıldıysa o zaman da yine ptrsafe deyimini declare komutundan hemen sonra kullanmalısınız.

Hocam desteğiniz için teşekkürler,
yalnız bu söylemiş olduklarınızı benim yapmam zor görünüyor, dosyayı size ulaştırsam sizin düzenleme şansınız olur mu?

tekrar teşekkürler, çalışmalarınızda başarılar.
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#4
sorun veri tabanınızın eski sürüm Access ile oluşturulmuş olmasından da kaynaklanıyor olabilir. bu durumda hem 32 hem 64 biti destekleyen bir sürümde 32 bit dosyaları açıp 64 bitle uyumlu olarak kaydetmeyi deneyebilirsiniz.
Emin değilim ama galiba 2007 sürümünü 32 bit dosyaları açıp 64 bit uyumlu olarak kaydedebiliyordu.

not: bi yerlerde Access Runtime’ın 32-bit sürümünü kurarak da açılabileceğine dair bir bilgi görmüştüm ama olur mu olursa sistemde başka sorunlara sebep olur mu bilmiyorum.
Cevapla
#5
(21/03/2025, 11:00)berduş yazdı: sorun veri tabanınızın eski sürüm Access ile oluşturulmuş olmasından da kaynaklanıyor olabilir. bu durumda hem 32 hem 64 biti destekleyen bir sürümde 32 bit dosyaları açıp 64 bitle uyumlu olarak kaydetmeyi deneyebilirsiniz.
Emin değilim ama galiba 2007 sürümünü 32 bit dosyaları açıp 64 bit uyumlu olarak kaydedebiliyordu.

not: bi yerlerde Access Runtime’ın 32-bit sürümünü kurarak da açılabileceğine dair bir bilgi görmüştüm ama olur mu olursa sistemde başka sorunlara sebep olur mu bilmiyorum.

Geri dönüşünüz için teşekkür ederim Hocam
iyi Çalışmalar.
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#6
(21/03/2025, 16:00)truhi yazdı:
(21/03/2025, 11:00)berduş yazdı: sorun veri tabanınızın eski sürüm Access ile oluşturulmuş olmasından da kaynaklanıyor olabilir. bu durumda hem 32 hem 64 biti destekleyen bir sürümde 32 bit dosyaları açıp 64 bitle uyumlu olarak kaydetmeyi deneyebilirsiniz.
Emin değilim ama galiba 2007 sürümünü 32 bit dosyaları açıp 64 bit uyumlu olarak kaydedebiliyordu.

not: bi yerlerde Access Runtime’ın 32-bit sürümünü kurarak da açılabileceğine dair bir bilgi görmüştüm ama olur mu olursa sistemde başka sorunlara sebep olur mu bilmiyorum.

Geri dönüşünüz için teşekkür ederim Hocam
iyi Çalışmalar.

sorunuzun cevabı resmi inceleyiniz
sizdeki kilit resmi olan dosyaların uzantıları accde oldugu için visual basıc kodlarını göremessiniz göremediğiniz için kodlar üzerinden düzenleme yapamassınız
.rar resim1.rar (Dosya Boyutu: 177,92 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