Liste de Yokken alan türü sorunu(Otomatik Sayı& Metin)

1 2 3 4
29/09/2014, 21:00

yorum70

Şahıs Formunda,şahısın 5-6 tane kişisel bilgisini girip, mesleğini ekliyoruz. Meslek , meslekler tablosunda yoksa listeye ekliyor....Tblmeslek de, kimlik alanı otomatik sayı iken sorunsuz çalışıyordu..Ancak hazırladığım bir sorguda meslekleri RAKAM olarak gösterdiğinden, TBLMESLEK de ki KİMLİK alan türünü METİN olarak değiştirdim..Sorguda ki hata giderildi.. Ancak, şimdi de LİSTEDE YOKKEN kodu hata veriyor...Meslek KİMLİK alan türü otomatik sayı iken aşağıda ki kodu kullanıyordum...

Türü METİN olarak değiştirdim, aşağıda ki kodu, METİN türlü bir alana nasıl uygulayabilirim ?



Private Sub MESLEK_NotInList(NewData As String, Response As Integer)
Dim strsql As String, X As Integer
X = MsgBox("Girilen MESLEK Listede Yok. Listeye Eklensin mi?", 52, "Bence Eklensin")
If X = vbYes Then
strsql = "Insert Into TBLMESLEK ([MESLEK]) values ('" & NewData & "')"
MsgBox "Kaydetme İşlemi Tamamlandı.", 64, "Kaydedildi"
CurrentDb.Execute strsql, dbFailOnError
Response = acDataErrAdded
Else
Response = acDataErrContinue
Me.MESLEK.Value = ""
End If
End Sub
29/09/2014, 22:43

atoz112

sayın yorum70,

öncelikle,eğer örnek uygulamanızı ekleyecek olursanız,2007 uyumlu olarak da ekleyebilirseniz,katılımcılar tarafından size daha net yardımcı bilgiler sunulabilir.

Sayısal bir veri türünü metin türüne dönüştürmek için CSTR fonksiyonunu kullanmalısınız.

CStr(me.metne_donusturulecek_metin_kutusunun_adi)

şeklinde yazılmaktadır.

Eğer bir metin veri türünü sayısal bir türe dönüştürmek istiyorsanız da,

Val(me.sayisala_donusturulecek_metin_kutusunun_adi)

şeklinde yazılmaktadır.bilgilerinize.

iyi çalışmalar,
saygılar.
29/09/2014, 22:59

iscinar

KİMLİK alanı otomatik sayı iken adından anlaşılacağı üzere siz MESLEK ekleyince otomatik olarak ekleniyordu.
Muhtemelen Birincil Anahtardır, boş geçilmesine izin yoktur.

Ancak Otomatik Sayıyı METİN olarak değiştirdiğinizde KİMLİK alanına otomatik olarak hangi metni atayacağını bilemiyor.
Boş geçemediği için hata vermesi normaldir.

Kodunuz içinde de bu alana atanacak yeni değer hakkında bilgi yok. (Örneğin: İlk üç harfi al yanına 1 arttırarak sayı ilave et gibi)

Ya bunu da otomatiğe bağlayacaksınız ya da tekrar Otomatik Sayı kullanmayı tercih edeceksiniz.
30/09/2014, 00:15

yorum70

Sn.atoz112 ve sn. iscinar, ilginize tesekkur ederim,Lisrde yokken yordami, meslek id'i otomatik sayi iken kod calisiyor,Ancak yeni olusturdugum sorguda meslek alanini rakam olarak gosteriyor.Anlattiklarinizdan, veri turunu tekrsr otomatik sayiya cevirip sorgu sonucunda nasil rakam yerine metin gosterir bunun uzerinde calismam gerekir, bunu anladim. Yapazsam bu yonde ornek ekleyip bu konuda yardimlarinizi talep ederim. Saygilarimla,
30/09/2014, 02:22

ozanakkaya

Örnek uygulama eklemediğiniz için atoz ve iscinar hocalar yanıt veremiyor. Bu tür sorularda mutlaka basit bir örnek ekleyiniz.

Soru ile ilgili olarak, öncelikle veri türünü otomatiksayı olarak değiştirip sorgunuzu düzeltmeye çalışın, yapamazsanız sorguyu düzeltmeye çalışalım.

bilgi açısından yazıyorum, yazdığınız
strsql = "Insert Into TBLMESLEK ([MESLEK]) values ('" & NewData & "')"

şeklindeki kodu

strsql = "Insert Into [TBLMESLEK] ([MESLEK],[meslekid]) values ('" & NewData & "','" & DMax("meslekid", "TBLMESLEK") + 1 & "')"

şeklinde değiştirirseniz, tabloya en büyük meslekid değerinin bir fazlasını ekleyerek kaydeder. Ayrıca sayı olan alanın "Sıralı" özelliğini "evet(yineleme yok)" şeklinde değiştirilmesi gerekli. Aynı meslekid'i ikinci defa vermemeli.
30/09/2014, 18:13

yorum70

Merhaba, Sn.Ozanakkaya, yorumunuzu sabah okudum, kodu uyarladım. Ancak, otomatik sayı olarak eklemede sorun yoktu, sorgu sonucunda rakamları göstermesinden dolayı metin türüne çevirmiştim.

Belirtmiş olduğunuz üzere, bozulmamış halini ekliyorum..

3 adet örnek veri girdim, kriter olarak sucno:1000 - suçno2 :300 ve yıl=2014 olarak yazarsanız, sorguda müşteki mesleklerinin ramak olarak gözüktüğünü göreceksiniz, dolayısıyla raparda da.
1 2 3 4