Tarih ve saat verisinden sayı üretmek

Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Arkadaşlar. Bir programda otomatik fiş numaraları üretmem gerekiyor. Ben bu fiş numaralarının rastlantısal olması için rnd komutunu kullandım. Fakat aslında yapmak istediğim şey; günün tarihi+saatini veren bir numara oluştırmak. Yani şöyle olacak: 2008+02+11+01+34+22 .. (Oluşan sayı şöyle olacak tabi ki: 20080211013422 ) Yani baştan itibaren yıl ay gün saat dakika saniye.. Bunu ben now komutuyla ya da date+time komutuyla oluşturdum, ama aralarındaki . (nokta) işaretini kaldıramadım. Format komutunu kullanarak yapılabilir belki ama komutun kullanımını bilmiyorum. Bu arada şimdi yazarken de yıl bilgisinin başa gelmesinin güzel olacağını düşündüm, bunu da yapmak için date ile gelen veriyi tersine çevirmek lazım. Bunu, denetim masasındaki bölgesel ayarlardaki tarih formatıyla oynamadan nasıl halledebilirim. Bana bir fikir verebilir misiniz? Şimdiden teşekkürler..
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba sayın mehmetdemiral

........
 
Son düzenleme:
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Düzeni istediğiniz gibi; 2008+02+11+01+34+22 mantığına göre hazırladım..

Daha farklıda düzenleyebilirsiniz ama..

Selamlar..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Taruz.. Teşekkür ederim.. İnceleyeceğim.. Hemen indiriyorum.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Mantığını anladım. Fakat ben bunu bir formda Yeni Kayıt düğmesine bastığımda nasıl o anda form üzerindeki fiş no alanına aktarırım onu çözeceğim. Kurduğun mantık üzerinden bunu hallederim herhalde. Tekrar teşekkür ederim. Dostçakal...
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Daha kolay bir yol

Sevgili Taruz.. Çok daha kolay ve pratik bir çözüm aradım (Özür dilerim :))) Senin bulduğun yöntemi bir form üzerine uygulamak biraz uzun bir yol geldi. Ama bana ilham verdin. left ve right komutlarından daha pratik bir komut var.
O da mid fonksiyonu. Kullanımı da basit. Onu kullandım. Bir arkadaş önerdi. Birlikte uyguladık. Çok da iyi oldu. Bunun için şöyle yaptım:

1- Formun üzerine metin1 metin2 ve komut1 yerleştirdim.
2- Metin1 in varsayılan değerini =now() yaptım.
3- Böylece her yeni kayıt açtığımda metin1 tarih ve saat değerini aldı.
4- Komut1'e önce değişkenler tanımladım
dim s as string
dim s1 as string
dim s2....
dim s3... gibi

5- Komut1 tıkladığında yordamına
s= mid(metin1, 1, 2)
s1= mid(metin1, 4, 2)
s2= mid(metin1, 7, 4)
s3.....
s4.....

gibi değişkenlere veri atadım.. Sonra da
metin2 = s2 + s1 + s3 + s4....
şeklinde değişkenleri metin kutusunda yanyana yazdırdım. Önce s2 (yani 2008) sonra s1 (yani 2.nci ay) sonra da s (yani gün)

Burada mantık şöyle:

s= mid(metin1, 1, 2)
(s değişkenine metin1 kutusundaki 1.nci sayıdan itibaren 2 değer aktar)

buradaki . (nokta) değerleri alınmaması için önce 1 ve 2 s değişkenine aktarılıyor, sonra 3.ncü değer nokta olduğu için s1 değişkenine 4'den itibaren 2 değer aktarılıyor. Bu böylece devam ediyor. Bu çözümü arkadaşlar yararlansın diye burada anlattım. Herkese kolay gelsin...
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Elinize sağlık.. Çok akıllıca olmuş..

Selamlar..
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın mehmetdemiral,

İlgili alanın yanına bir düğüme ekleyin ve klik olayına şu kodları kopyalayıp yapıştırın:

Kod:
Dim n, d, t As Date
n = Now
d = Format(n, "Short Date")
t = Format(n, "Long Time")
Me.Metin2 = Format(d, "yyyymmdd") & Format(t, "hhmmss")
İyi çalışmalar:)
 
Son düzenleme:
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sevgili Modalı... İşte ilk düşünüp de yazdığım format işlemiyle olabilir dediğim buydu. Denemedim ama eminim çalışacaktır...teşekkürler....
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
hatta şöyle yazmışım ilk mesajda

"Format komutunu kullanarak yapılabilir belki ama komutun kullanımını bilmiyorum"

sayenizde onu da öğrendik... tekrar teşekkürler...
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Merhaba,

Otomatik sayı bölümünde sayıların 1,2,3,4,5... şeklinde değil de, örneğin;
50+içinde bulunduğumz yıl+0001 şeklinde yapabilir miyiz? 0001 bölümü ekleme yapıldıkça +1 artacak.

5020080001
5020080002
5020080003
.
.
.
şeklinde.

Teşekkürler.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın Sesi
Otomatik sayının böyle bir özelliği var mı bilmiyorum ama sizin istediğiniz şey benim ve modalı'nın önerdiği her iki sistemle birlikte kullanılabilir. Sonuçta verileri parçalayıp now() ile gelen bilgiyi değişkenlere atıyoruz. Sonra da değişkenleri istediğimiz şekilde başka sayılarla bir araya getirebiliriz. Yukardaki kodlarda ve örneklerde bu işlemler görülebilir.Sayının 1 artması çok zor değil. En büyük sayıyı bulup
[enbuyuksayi]+1
demeniz yeterli.. Kolay gelsin..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Şu örnek çalışma bahsettiğim türden sayılabilir ve geliştirilebilir. Örnek olarak inceleyebilirsiniz.
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Sayın mehmetdemiral,

Teşekkür ederim.
 
Üst