Skip to main content

Fungsi DateAdd di MS Access

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.
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

Comments

  1. Bagaimana bila saya ingin menambah nilai tanggal pada suatu kolom dengan interval 2 bulan sekali dalam 1 tahun secara loop.
    mohon pencerahannya

    ReplyDelete
    Replies
    1. Coba pakai kode ini

      Dim i as Integer
      Dim dtTglSekarang as Date

      dtTglSekarang = now()

      for i=1 to 3
      dtTglSekarang = DateAdd("m",2,tglSekarang)
      Debug.Print dtTglSekarang
      next i

      Delete

Post a Comment

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access