Di Access, fungsi DateAdd digunakan untuk menambah atau mengurangi nilai tanggal atau jam dengan interval tertentu. Interval tertentu ini bisa berupa periode tertentu seperti hari, minggu, bulan, bahkan sampai ke jam atau detik. Jadi, tergantung pada interval waktu tertentu, kita bisa menambahkan atau mengurangi sebuah tanggal atau jam untuk beberapa waktu yang akan datang secara logis.
Sintaks penulisannya adalah sebagai berikut:
Keterangan:
Interval (interval): wajib diisi, berupa kode dengan tipe data string/text, menunjukkan interval waktu yang diinginkan. Kodenya adalah sebagai berikut:
Number (jumlah interval): wajib diisi, berupa angka dengan tipe data double, bisa positif atau negatif. Angka positif bila ingin menghitung tanggal atau jam ke masa yang akan datang dan angka negatif bila ingin menghitung tanggal atau jam ke masa lalu.
Date (tanggal): wajib diiisi, tipe data Variant (Date) atau Date/Time, merupakan tanggal yang menjadi dasar dalam menghitung DateAdd. Bila angka tahun tidak disertakan, maka tahun dianggap sama dengan tahun yang ada pada tanggal sistem. Jadi misalnya, tanggal sistem 27 November 2017 dan tanggal dinyatakan "27 Nov" maka tahunnya sama dengan 2017.
Untuk menambah atau mengurangi tanggal, kita dapat menggunakan kode "y","d", atau "w" pada variabel interval. Misalnya:
Fungsi DateAdd sudah diprogram sedemikian rupa sehingga bisa mengenali apakah tanggal yang kita masukkan merupakan bagian dari tahun kabisat atau bukan. Jadi misalnya, tanggal 31-Jan-2016, bila kita tambahkan 1 bulan dengan menggunakan fungsi berikut ini,
Pengaturan fungsi DateAdd mengikuti pengaturan yang ada di Control Panel, jadi bila format penanggalan menggunakan Indonesia sebagai acuannya, maka cara menuliskan dan menampilkan hasil juga akan menggunakan penanggalan Indonesia. Demikian juga, penanggalan Amerika di Control Panel juga akan mempengaruhi tampilanDateAdd menjadi penanggalan Amerika juga.
Hal yang sama juga terjadi pada properti Calendar. Bila properti Calendar di Control Panel menggunakan Gregorian, maka tanggal yang digunakan juga menggunakan Gregorian, demikian pula bila menggunakan Hijri (Hijriah), maka format penulisan di DateAdd juga menggunakan Hijri (Hijriah).
Berikut ini adalah berbagai macam contoh fungsi DateAdd.
Berbagai macam contoh aplikasi fungsi DateAdd di VBA melalui Immediate Window |
Sintaks penulisannya adalah sebagai berikut:
DateAdd (Interval, Number, Date)
Keterangan:
Interval (interval): wajib diisi, berupa kode dengan tipe data string/text, menunjukkan interval waktu yang diinginkan. Kodenya adalah sebagai berikut:
Nilai | Deskripsi |
yyyy | Tahun |
q | Kuartal |
m | Bulan |
y | Hari dalam tahun |
d | Hari |
w | Hari dalam minggu |
ww | Minggu |
h | Jam |
n | Menit |
s | Detik |
Number (jumlah interval): wajib diisi, berupa angka dengan tipe data double, bisa positif atau negatif. Angka positif bila ingin menghitung tanggal atau jam ke masa yang akan datang dan angka negatif bila ingin menghitung tanggal atau jam ke masa lalu.
Date (tanggal): wajib diiisi, tipe data Variant (Date) atau Date/Time, merupakan tanggal yang menjadi dasar dalam menghitung DateAdd. Bila angka tahun tidak disertakan, maka tahun dianggap sama dengan tahun yang ada pada tanggal sistem. Jadi misalnya, tanggal sistem 27 November 2017 dan tanggal dinyatakan "27 Nov" maka tahunnya sama dengan 2017.
Untuk menambah atau mengurangi tanggal, kita dapat menggunakan kode "y","d", atau "w" pada variabel interval. Misalnya:
DateAdd("y",1,"28 Feb 2017"), atau DateAdd("d",1,"28 Feb 2017"), atau DateAdd("w",1,"28 Feb 2017")akan memberikan hasil yang sama, yaitu 1/3/2017 (1 Mar 2017).
Fungsi DateAdd sudah diprogram sedemikian rupa sehingga bisa mengenali apakah tanggal yang kita masukkan merupakan bagian dari tahun kabisat atau bukan. Jadi misalnya, tanggal 31-Jan-2016, bila kita tambahkan 1 bulan dengan menggunakan fungsi berikut ini,
DateAdd("m",1,"31 Jan 2016")maka hasilnya adalah 2/29/2016 (28 Feb 2016), karena pada tahun 2016,bulan Februari berakhir pada tanggal 29.
Pengaturan fungsi DateAdd mengikuti pengaturan yang ada di Control Panel, jadi bila format penanggalan menggunakan Indonesia sebagai acuannya, maka cara menuliskan dan menampilkan hasil juga akan menggunakan penanggalan Indonesia. Demikian juga, penanggalan Amerika di Control Panel juga akan mempengaruhi tampilanDateAdd menjadi penanggalan Amerika juga.
Hal yang sama juga terjadi pada properti Calendar. Bila properti Calendar di Control Panel menggunakan Gregorian, maka tanggal yang digunakan juga menggunakan Gregorian, demikian pula bila menggunakan Hijri (Hijriah), maka format penulisan di DateAdd juga menggunakan Hijri (Hijriah).
Berikut ini adalah berbagai macam contoh fungsi DateAdd.
Fungsi | Output | Keterangan |
---|---|---|
DateAdd("y",1,"28 Feb 2017") | 01 Mar 2017 | maju 1 hari |
DateAdd("w",1,"28 Feb 2017") | 01 Mar 2017 | maju 1 hari |
DateAdd("d",1,"28 Feb 2017") | 01 Mar 2017 | maju 1 hari |
DateAdd("d",1,"28 Feb") | 01 Mar 2017 | maju 1 hari |
DateAdd("m",1,#31 Jan 2016#) | 29 Feb 2016 | maju 1 bulan |
DateAdd("yyyy",1,#31 Jan 2016#) | 31 Jan 2017 | maju 1 tahun |
DateAdd("q",1,#30 Apr 2017#) | 30 Jul 2017 | maju 1 kuartal (3 bulan) |
DateAdd("q",-1,#11/25/2017 4:07:54 PM #) | 25 Aug 2017 | mundur 1 kuartal (3 bulan) |
DateAdd("h",3,#11/25/2017 4:07:54 PM #) | 25 Nov 2017 07:07:54 PM | maju 3 jam |
DateAdd("n",30,#11/25/2017 4:07:54 PM #) | 25 Nov 2017 04:37:54 PM | maju 30 menit |
DateAdd("s",10,#11/25/2017 4:07:54 PM #) | 25 Nov 2017 04:08:04 PM | maju 10 detik |
DateAdd("ww",-1,#11/25/2017#) | 18 Nov 2017 | mundur 1 minggu |
Bagaimana bila saya ingin menambah nilai tanggal pada suatu kolom dengan interval 2 bulan sekali dalam 1 tahun secara loop.
ReplyDeletemohon pencerahannya
Coba pakai kode ini
DeleteDim i as Integer
Dim dtTglSekarang as Date
dtTglSekarang = now()
for i=1 to 3
dtTglSekarang = DateAdd("m",2,tglSekarang)
Debug.Print dtTglSekarang
next i