vba içinden sorgu çalıştırırken hata alıyorum.

1 2
27/12/2017, 21:37

WiniFred

Örnek eklemediğiniz için çalışıp çalışmadığını kontrol edemedim ama bahsettiğiniz şekilde dno'yu Vba kodu içinden değişken olarak eklemek istediğinizde aşağıdaki gibi yazmanız gerekir.


CurrentDb.Execute "INSERT INTO Zorunluİstihdam ([Dosya No],[Ad-Soyad],[TC Kimlik No],[Mezuniyet],[Bölümü],[Telefon],[Askerlik],[Görev Yeri-İl],[Görev Yeri-İlçe],[Görev Yeri]) SELECT [Dosya No],[Ad-Soyad],[TC Kimlik No],[Mezuniyet],[Bölümü],[Telefon],[Askerlik],[Görev Yeri-İl],[Görev Yeri-İlçe],[Görev Yeri] FROM [İşbaşıEğitimListesi]" _
& "WHERE (([İşbaşıEğitimListesi].[Dosya No]=" &  dno & ") AND ([İşbaşıEğitimListesi].[Durum] = 'Zorunlu İstihdam'))"
Debug.Print strSQL
27/12/2017, 22:15

serbay33

(27/12/2017, 21:37)WiniFred yazdı: Örnek eklemediğiniz için çalışıp çalışmadığını kontrol edemedim ama bahsettiğiniz şekilde dno'yu Vba kodu içinden değişken olarak eklemek istediğinizde aşağıdaki gibi yazmanız gerekir.


CurrentDb.Execute "INSERT INTO Zorunluİstihdam ([Dosya No],[Ad-Soyad],[TC Kimlik No],[Mezuniyet],[Bölümü],[Telefon],[Askerlik],[Görev Yeri-İl],[Görev Yeri-İlçe],[Görev Yeri]) SELECT [Dosya No],[Ad-Soyad],[TC Kimlik No],[Mezuniyet],[Bölümü],[Telefon],[Askerlik],[Görev Yeri-İl],[Görev Yeri-İlçe],[Görev Yeri] FROM [İşbaşıEğitimListesi]" _
& "WHERE (([İşbaşıEğitimListesi].[Dosya No]=" &  dno & ") AND ([İşbaşıEğitimListesi].[Durum] = 'Zorunlu İstihdam'))"
Debug.Print strSQL
Hocam teşekkürler, örneklik bir durum değil, en son 2005'te access'e işim düşmüştü, şimdi tekrardan bi işimi halletmeye çalışıyorum. 
yaş da ilerleyince eskisi kadar kıvıramıyorum.
" &  dno & " olayını anladım, o hatamı düzeltti, şimdi ise ;
"ölçüt ifadesinde veri türü uyuşmazlığı" hatasını verdi,  ama [Dosya No] nun olduğu hem "Zorunluİstihdam" tablosu hem de "İşbaşıEğitimListesi" tablosunda kısa metin olarak tanımlı, neye veri türü uyuşmazlığı dedi anlamadım. yine bi şeyi mi kaçırdım?
teşekkürler.
27/12/2017, 22:39

WiniFred

Doğru anlamışsam ve [Dosya No] kısa metin türünde ise;

Dim dno as string

olarak düzeltin. Ayrıca sorguda dno'yu yazdığımız kısmı;

[İşbaşıEğitimListesi].[Dosya No]='" &  dno & "') AND 

şeklinde düzeltin (eşittirden sonra ve parantezden önce tek tırnak ekleyin).

Dediğim gibi, doğru anlamışsam.
27/12/2017, 22:47

serbay33

(27/12/2017, 22:39)WiniFred yazdı: Doğru anlamışsam ve [Dosya No] kısa metin türünde ise;

Dim dno as string

olarak düzeltin. Ayrıca sorguda dno'yu yazdığımız kısmı;

[İşbaşıEğitimListesi].[Dosya No]='" &  dno & "') AND 

şeklinde düzeltin (eşittirden sonra ve parantezden önce tek tırnak ekleyin).

Dediğim gibi, doğru anlamışsam.

doğru anladınız hocam, göndermeden önce As String olayını denemiştim, o da olmayınca sormuştum bir önceki mesajı. 
tek tırnakları ekledim, bu sefer where olayını hiç yapmadı. sonra sizin yazdığınızdan bi şey dikkatimi çekti. ben where'deki ifadeleri & ile birleştiriyordum, siz AND yazmışsınız, onunla değiştirdim (eskiden oluyordu, yeni versiyonlarda mı olmuyor anlamadım)
bu sefer oldu. sorunum çözüldü yani - teşekkürler.
1 2