Tampilkan postingan dengan label Artikel. Tampilkan semua postingan
Tampilkan postingan dengan label Artikel. Tampilkan semua postingan

CARA MEMBUAT LIST COMBO BOX UPDATE OTOMATIS

Combo Box adalah salah satu control yang disediakan Access yang sangat disukai. Dengan Combo Box kita bisa menyediakan list data yang tinggal dipilih oleh user, misalnya data Kode Barang, Nomor Induk Karyawan, Kode Akun, dan sebagainya.

Sedikit problem, list data dalam Combo Box tidak bisa terupdate secara otomatis sebelum form yang memuatnya ditutup dan dibuka kembali. Misalnya seorang user sedang menginput data pada form Penjualan, ternyata barang yang mau diinput belum terdapat dalam pilihan Combo Box. Dia (atau seorang user yang lain) lalu menambahkannya pada Master Barang, namun Kode Barang yang baru ditambahkan tersebut tetap tidak tersedia pada Combo Box form Penjualan. User tersebut harus menutup dulu form Penjualan dan membukanya kembali agar data barang yang baru tersedia dalam Combo Box.

Merefresh Data Pada Combo Box Secara Otomatis

Sebenarnya, Access telah menyediakan sebuah shortcut key untuk me-refresh data dalam Combo Box, yaitu tombol F9 (ditekan pada Combo Box). Namun tombol ini mungkin sering dilupakan. Sebagai pembuat aplikasi, kita bisa menyediakan cara agar list dalam Combo Box terupdate secara otomatis.

 


 

Caranya adalah sebagai berikut:

  1. Buka form yang mengandung Combo Box tersebut dalam Design View.
  2. Klik control Combo Box untuk memilihnya, lalu tekan F4 untuk menampilkan Properties.
  3. Pada Properties, klik Event (misalnya) On Enter. Pilih “Event Procedure”, lalu klik tombol Builder […] di sebelah kanannya. Muncul jendela Visual Basic Editor.
  4. Masukkan code sehingga tampak seperti berikut ini (cboKodeBarang adalah nama Combo Box):
    Private Sub cboKodeBarang_Enter()
        Me.cboKodeBarang.Requery
    End Sub
  5. Tutup jendela Visual Basic Editor untuk kembali ke Form Design.
  6. Simpan form lalu jalankan untuk mencobanya.
  7. Dalam keadaan form penjualan masih tampil (Form View), cobalah menambahkan record barang baru pada table Barang, simpan record. Kembali ke form Penjualan lalu klik untuk membuka list dalam Combo Box Kode Barang, niscaya barang yang baru ditambahkan akan muncul dalam pilihan.

Pada prosedur di atas, kita menggunakan event On Enter untuk melakukan refresh otomatis, artinya cursor atau focus haruslah berada di luar Combo Box lalu ketika user mengklik untuk membuka Combo Box, event On Enter dijalankan.

Umumnya cara ini sudah cukup untuk melakukan refresh data pada Combo Box secara otomatis. Namun user haruslah “masuk” (Enter) ke dalam Combo Box (dari luar) agar event terjadi.

Jika anda tidak puas dengan cara ini, anda bisa menambahkan code yang sama, misalnya pada vent On DblClick. Dengan demikian, jika user ingin memunculkan data barang yang baru ditambahkan, dia bisa men-double-click Combo Box.

 


 .

Membuat Function fRefreshList()

Kebutuhan untuk melakukan refresh Combo Box secara otomatis ini cukup sering, yaitu sebanyak Combo Box yang mungkin mendapatkan data baru selama form yang memuatnya masih terbuka.

Agar kita tidak perlu membuat Event Procedure untuk setiap Combo Box, kita bisa membuat sebuah function yang berlaku umum (general) sehingga setiap Combo Box yang membutuhkannya bisa langsung menggunakan.

Caranya adalah sebagai berikut:

  1. Buka atau buat sebuah module umum (general module), lalu tambahkan function sebagai berikut:
    Function fRefreshList()
        Screen.ActiveControl.Requery
    End Function
  2. Simpan module.
  3. Buka form yang Combo Box-nya ingin menggunakan function tersebut.
  4. Klik Combo Box untuk memilihnya, tekan F4 untuk menampilkan Properties, lalu pada event On Enter masukkan =fRefreshList()

Tentu saja anda bisa memasang function fRefreshList() ini pada event On DblClick juga.

 


 

Selamat mencoba, semoga berhasil.


MENGAPA HARUS ACCESS?


Oleh: Haer Talib (www.HaerTalib.com)

Ada yang bertanya, "kenapa sih (hanya) menggunakan Access?" Saya balik bertanya, "emang apa yang lain?"

Bagi sebagian orang, saya mungkin dikenal "Access banget". Apa-apa Access. Sebentar-sebentar Access. Tulisan-tulisan saya (artikel) banyak tentang Access. Buku-buku saya sebagian besar juga Access. Program-program aplikasi yang saya buat (hampir) semuanya menggunakan Access. Sampai-sampai Microsoft menganugerahi saya Access MVP award sebanyak 9 kali berturut-turut.

Ada teman yang berseloroh: "Access tiada matinya!" hehehe.

Sekadar Referensi:



Microsoft Access


Mungkin ada yang bertanya: "Access itu apa sih?"
Access, atau MS Access, atau Microsoft Access, adalah software untuk menyimpan dan mengelola data(base). Jika anda mengenal MS Excel (piranti pengelola angka/worksheet), maka MS Access adalah piranti pengelola data/database. Saat ini, katakanlah skupnya Indonesia, apakah ada software pengolah data selain Access yang anda kenal?


MENJALANKAN APLIKASI ACCESS TANPA MS ACCESS?

Haer Talib (MS Access Developer)
Oleh: Haer Talib (www.HaerTalib.com)

  1. “Saya tidak punya MS Access di komputer, bagaimana saya menjalankan aplikasi Access?”
  2. “Saya tidak mau menggunakan aplikasi Access, karena saya tidak mau membeli software MS Access.”
  3. “MS Access saya versi 2007, jadi tidak bisa menjalankan aplikasi Access yang dibuat dengan versi yang baru.”

Semua pertanyaan dan pernyataan di atas benar, namun jika anda mengetahui triknya maka anda akan bisa menjalan aplikasi yang dibuat dengan MS Access.

BEDA VERSI


Saya akan memulai dengan pernyataan ketiga.

Memang benar MS Access versi yang lebih lama tidak bisa membuka atau menjalankan aplikasi yang dibuat dengan MS Access versi yang lebih baru. Access 2007 tidak bisa membuka/menjalankan aplikasi yang dibuat dengan Access 2010, paling tidak akan muncul error atau ada yang tidak bisa dijalankan.

Aturannya: aplikasi yang dibuat dengan MS Access versi lama bisa dibuka atau dijalankan pada MS Access yang lebih baru, dan tidak bisa sebaliknya.


Belajar Dari Sumber Yang Dapat Dipercaya

Oleh: Haer Talib

SOAL belajar adalah soal MINAT! Jika anda berminat, dan minat tersebut kuat, maka anda akan berusaha maksimal untuk melakukannya. Jika anda berminat, namun minat itu kurang, maka usaha anda akan sedikit saja. Nggak pun nggak apa-apa. Hasilnya jelek pun nggak masalah.

“Boro-boro mau bayar, dikasih gratis pun malas”, kira-kira seperti itu istilahnya.

Fenomena lain dalam hal belajar adalah keinginan untuk instan dan mau yang langsung saja. Kalau dikasih dasar pemikiran, malas membacanya. Ujungnya, dari yang saya perhatikan, hasil belajarnya tidak maksimal! Kemampuan melakukan sesuatu, misalnya dalam menggunakan Microsoft Access, hanya seperti contoh tutorial yang didapat. Begitu ketemu masalah, tidak ada tutorial yang bisa membantunya lagi.

Tutorial

Kabanyakan artikel yang saya tulis memberikan dasar pemikiran, dan mendorong untuk terus belajar. Tutorial untuk melakukan sesuatu rasanya terlalu dangkal dan sayang waktunya jika kita membahas tutorial saja. Saya yakin, anda yang sering mengikuti langkah-langkah tutorial juga banyak yang tidak bisa menyelesaikan tutorialnya karena situasi real yang dihadapi ternyata berbeda dari langkah-langkah yang diberikan.

Hambatan Belajar

Ketika memberikan training, peserta yang melakukan langkah-langkah yang saya contohkan secara langsung saja kadang menemui hambatan. Kenapa? Ya karena sikon pada komputernya berbeda dari yang saya tunjukkan, atau dia missed melakukan sesuatu langkah sebagaimana mestinya. Untungnya masih dalam kelas training jadi saya bisa langsung membantu dan menunjukkan dimana problemnya. Saya bahkan berpesan agar peserta melakukan kesalahan, karena dengan hambatan yang dihadapi, saya bisa menunjukkan apa penyebabnya dan bagaimana mengatasinya.

Saya tidak menyalahkan penyedia tutorial karena itu sebenarnya salah satu cara mulia untuk berbagi ilmu. Namun sayangnya, tutorial di Internet banyak yang instan dan ‘asal’ saja, asal ada konten untuk SEO websitenya (berharap iklannya banyak yang lihat, namun karena dilihat doang nggak diklik jadi ya nggak dapat rupiahnya juga :P). Tutorial yang instan ini, yang tidak mempertimbangkan variasi situasi yang dihadapi usernya, bisa menjadi hanya teks tutorial saja alias tidak bermanfaat. Selain itu, penulisnya juga tidak memilihkan topik yang cukup berarti sehingga upaya belajar menjadi sedikit manfaatnya.

Temukan Sumber Belajar Yang Tepat

Kembali ke soal minat belajar, jika anda memang berminat belajar, temukan sumber belajar yang cukup berarti dan bisa dipercaya, jangan senang mudahnya saja. Waktu dan upaya belajar yang sudah anda sediakan hendaknya memberikan anda ilmu yang cukup berarti, karena dengan itu ‘biaya’ belajar anda menjadi tidak sia-sia dan akhirnya memberikan ‘kembalian’ yang berlipat ganda bagi anda.

Semoga dapat dipahami.

Access Online

Oleh: Haer Talib, Access MVP

“Access Go Online” adalah tema yang diangkat ketika komunitas pemakai MS Access di Indonesia mengadakan kumpul-kumpul (Community Gathering), April 2012, di Auditorium PT Microsoft Indonesia, Jakarta.

Tema ini dilatarbelakangi oleh keinginan pemrogram Access untuk bisa mengakses database secara online. Tentu yang dimaksud di sini berkaitan dengan pemakaian Internet yang sudah memasyarakat, sehingga apa saja bisa dihubungkan dengan Internet, termasuk mengakses database. Di samping itu, muncul teknologi pembuatan aplikasi web dengan Microsoft Access, yaitu dengan meng-host database dan aplikasinya pada SharePoint Server.

Online Database

Sebenarnya, kalau ngomongin online database, sudah sejak lama database Access bisa diakses secara online, yaitu melalui jaringan komputer. Pengertian ‘online’ ini diperoleh dari Wikipedia, yang mengartikan “online” = “dalam jaringan” atau disingkat “daring”.

Prakteknya, pada perusahaan-perusahaan yang sudah menggunakan jaringan komputer, database umumnya disimpan pada komputer ‘server’, dan client mengaksesnya melalui program aplikasi yang disimpan pada komputer lokal (komputer client).

Microsoft Access juga bisa digunakan untuk mengakses dan mengelola database yang disimpan pada Database Server, seperti Microsoft SQL Server, Oracle, dan MySQL. Di kantor saya, kami menggunakan database MS SQL Server (salah satu database) yang servernya berada pada salah satu gedung di Jakarta (data center). Kami mengakses data antara lain menggunakan Microsoft Access, dan program aplikasi yang dijalankan users dibuat dengan Microsoft Access. Users tersebar di kota-kota besar di Indonesia, menggunakan program aplikasi yang sama. Jika users terkoneksi dengan jaringan kantor, maka dia akan bisa mengakses database (menggunakan program aplikasi, sesuai dengan permissionnya).

Macam-Macam Konsep Database Online

Konsep database online dengan Microsoft Access bisa kita bedakan ke dalam 6 macam:

  1. FE-BE (Front-End – Back End, disebut juga Client-Server)

Konsep ini menggunakan program aplikasi yang dibuat dengan Microsoft Access di sisi client (FE) dan database MS Access di sisi ‘server’ (BE).
File database di sini diakses secara file-sharing. Bisa digunakan secara multiuser, namun semakin banyak user yang mengakses database pada waktu yang sama akan semakin menurunkan kinerja database.

  1. Access Project (ADP)

Konsep ini menggunakan program aplikasi yang dibuat dengan Microsoft Access di sisi client dan database MS SQL Server di sisi server.
Oleh karena menggunakan database server, kinerja database untuk melayani multiuser sangat baik serta keamanan database lebih terjamin.

  1. Access via ODBC

Konsep ini menggunakan ODBC untuk konek ke database. Program aplikasi client dibuat dengan Microsoft Access, sedangkan database bisa menggunakan database apa saja, termasuk database server seperti Oracle dan MySQL.

  1. Remote Access

Konsep ini menggunakan teknologi remote desktop atau remote server, dimana program dan database yang dibuat dengan Microsoft Access dijalankan secara remote dari komputer client. Databasenya bisa saja database Access, bisa juga menggunakan database server.

  1. Web Application

Pada konsep ini, aplikasi web dibuat dengan Microsoft Access, lalu di-hosting pada server SharePoint menggunakan Access Services. Front-End dibuka dengan browser web, sedangkan database menggunakan SharePoint List.
“Kesulitan” menggunakan konsep ini adalah karena database harus hosting pada server SharePoint (tidak semua server hosting bisa), dan di sisi pembuatan aplikasi kita tidak bisa menggunakan VBA.

  1. Access Application Within Browser

Konsep ini memanfaatkan layanan di Internet (eqldata.com) yang dapat menjalankan aplikasi Microsoft Access melalui web browser. Aplikasi dan database yang kita buat di-upload terlebih dahulu ke server yang disediakan oleh penyedia layanan.

Nah, silahkan memilih cara yang mana yang paling sesuai dengan kebutuhan (dan kemampuan) Anda.


TATA CARA MEMBUAT ACCESS PROJECT (3)


Oleh: Haer Talib


Setelah Anda menginstal atau mendapat akses ke SQL Server, kini saatnya Anda mulai membuat Access Project.
Caranya mudah sekali.

Membuat Access Project pada Access 2003


Klik menu File > New.
Pada Task Pane (di sebelah kanan), klik:
  • Project using existing data (jika database yang ingin dikelola sudah tersedia pada SQL Server).
  • Project using new data (untuk membuat database baru).


Simpan file (berekstensi ADP).


File ini merupakan file aplikasi karena file database yang mengandung data disimpan dan dikelola oleh SQL Server.

Data Link Properties


Jika Anda memilih untuk menggunakan database yang sudah ada, akan muncul Data Link Properties sebagai berikut:

Pada gambar di atas, saya menggunakan contoh server dengan alamat IP. Anda bisa juga menggunakan nama server. Jika server mempunyai lebih dari satu instance SQL Server yang berjalan, sebutkan juga nama instance-nya.

Pada contoh di atas saya menggunakan Login “sa”. Login “sa” adalah yang paling tinggi permissionnya dan selalu ada pada setiap instalasi SQL Server. Kalau Anda belum membuat login yang lain, bisa menggunakan login “sa” saja. Login ini dilakukan jika instalasi SQL Server menggunakan mode otentikasi SQL Server atau “mixed mode”. Jika menggunakan mode otentikasi Windows (lebih disarankan pada jaringan yang menggunakan Windows Server), maka Anda tidak perlu menentukan Login dan password.
(Catatan: Penentuan mode otentikasi dilakukan ketika menginstal SQL Server).

Pilihan “Allow saving password” digunakan jika Anda tidak ingin memasukkan password setiap kali melakukan login ke SQL Server.

Perlu diperhatikan bahwa Anda menentukan link properties ini hanya sekali saja, karena Access akan menyimpan informasinya dan otomatis akan menggunakannya lagi setiap kali file ADP dibuka. Jika opsi “Allow saving password” tidak dicentang, Access akan menampilkan prompt untuk memasukkan password setiap kali ADP Anda akan melakukan koneksi ke SQL Server. Kelemahan jika Anda menyimpan password, password tersebut “bisa” ditemukan oleh hacker yang mendapat file ADP Anda.

Jika informasi login yang Anda masukkan sudah benar (valid), Anda bisa memilih database yang ingin digunakan. Sebaiknya Anda mengklik tombol “Test Connection” sebelum memilih database untuk memastikan Anda bisa melakukan koneksi. Jika tidak, query terhadap database yang berada di server akan memakan waktu lama karena sebenarnya dilakukan juga usaha untuk melakukan koneksi tersebut.

Berikut ini adalah contoh lain pengisian Data Link Properties:


Pada contoh di atas, saya menggunakan SQL Server yang terinstal pada local computer saya, yaitu SQL Server 2008 Express, dengan nama instance SQLExpress. Jadi saya menulis nama server sebagai: .\SQLExpress (tanda titik untuk menunjukkan local computer).

Selain itu saya juga menggunakan mode otentikasi Windows sehingga tidak perlu memasukkan informasi login dan password (adapun tampak login ‘sa’ dan password adalah bekas sebelumnya dan informasi ini akan diabaikan).

Klik “Test Connection”. Jika prosesnya lama, kemungkinan koneksi tidak berhasil.


Anda harus memastikan bahwa Anda bisa melakukan koneksi ke SQL Server, misalnya menggunakan MS SQL Server Management Studio atau tool yang lain. Jika dengan tool yang lain Anda bisa melakukan koneksi, kemungkinan kegagalan koneksi terdapat pada salah satu properti koneksi.

Klik tab “All” untuk memeriksa.

Dari pengalaman saya, umumnya yang membuat gagal koneksi adalah Network Library yang digunakan (lihat gambar).


Double-click properti Network Library lalu hapus nilai yang ada (Reset Value).

Klik tab “Connection” kembali, lalu klik “Test Connection” lagi. Anda baru bisa melanjutkan jika sudah berhasil melakukan koneksi.


Anda tidak harus memilih nama database untuk melakukan koneksi. Jika Anda terlanjur mengklik “OK” untuk menutup Data Link Properties, Anda masih bisa menampilkannya melalui menu File > Connection.
Pilih database yang ingin Anda gunakan, atau jika belum ada, buatlah yang baru.

(Bersambung...)

Seri tulisan Access Project: 1 2 3

Membuat Function Holiday Melalui SQL

Oleh: Erwin Sugiawan


Seringkali kita mendapat pertanyaan dari bos ataupun client, mengenai hal2 tentang manipulasi tanggal. Berikut dibawah ini saya mencoba membuat fungsi2 tanggal melalu sql :

1. membuat manipulasi tanggal dengan cara melakukan penambahan/pengurangan beberapa hari dengan memperhitungan hari libur nasional.

a. kita wajib mendefinisikan table holiday (tblDateHoliday ), yang berisi field2 sbb

CREATE TABLE [tblDateHoliday] (
[CountryCode] [varchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[YR] [varchar] (6) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Holiday] [datetime] NOT NULL ,
[Description] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[LastUpdate] [datetime] NULL CONSTRAINT [DF_tblDateHoliday_LastUpdate] DEFAULT (getdate()),
[OperatorID] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
CONSTRAINT [PK_tblDateHoliday] PRIMARY KEY NONCLUSTERED
(
[CountryCode],
[YR],
[Holiday]
) ON [PRIMARY]
) ON [PRIMARY]

lalu masukan data2 dibawah ini
- CountryCode YR Holiday Description LastUpdate OperatorID
IDR 2008 10/1/2008 Tahun Baru Hidriyah 12/27/2007 9:22:47 AM Erwin
IDR 2008 11/1/2008 Cuti Bersama 12/27/2007 9:22:47 AM Erwin



b. membuat function fnDateHoliday,seperti dibawah ini

Create Function fnDateHoliday (
@pdate datetime,
@DateAddDays integer,
@Country varchar(3),
@SignPlusMinus char(1) ) Returns Datetime
-- with encryption
as
Begin
Declare @vDayWork Int
Declare @vDayCount Int
Declare @NewDateDay datetime
Declare @hitung int

Set @vDayWork = 0
Set @vDayCount= 0
Set @hitung= 0
Set @NewDateDay = @pDate

While @vDayCount < @DateAddDays
Begin
if @SignPlusMinus='+'
select @vDayWork = @vDayWork + 1
else
select @vDayWork = @vDayWork - 1

Select @NewDateDay = @pDate + @vDayWork

-- 6=hari sabtu
if DATEPART(dw, @NewDateDay)-1 = 6
Begin
Goto CSDLoop
End
-- 0=hari Minggu
If DATEPART(dw, @NewDateDay)-1 = 0
Begin
Goto CSDLoop
End

Select @hitung=Count(Holiday)
From NamaDatabase.dbo.tblDateHoliday
where (holiday=@NewDateDay and CountryCode=@Country )

If @hitung <> 0
Goto CSDLoop
else
Select @vDayCount = @vDayCount+1

CSDLoop:
continue
End

return (@NewDateDay)
End


c. cara pengunaan nya

- melalui SQL Query Analyzer
select NamaDatabase.dbo.fnDateHoliday ('9-Jan-2008',1,'IDR','+')
tekan F5
lalu akan muncul hasil 2008-01-14 00:00:00.000

kenapa muncul tanggal 14 ? karena dalam tabel holiday sudah saya definisikan bawah tanggal 10 dan 11 Jan 2008 adalah hari libur serta tanggal 12 dan 13 jan 2008 adalah hari sabtu dan minggu yang oleh function fnDateHoliday telah di definisikan kalo hari sabtu minggu tidak di hitung.


- melalui Module Ms.Access
karena function di SQL hanya menghasil sebuah nilai dan nilai tersebut tidak bisa diambil secara langsung oleh Ms.Access, maka kita buat sebuah Store Procedure

Create PROCEDURE spGetHoliday

@pdate datetime,
@DateAddDays integer,
@Country varchar(3),
@SignPlusMinus char(1)

-- WITH ENCRYPTION
AS
Select NamaDatabase.dbo.fnDateHoliday
(@pdate,@DateAddDays,@Country,@SignPlusMinus ) as GetCurDate

return


lalu copy paste function dibawah dalam module Ms.Access nya


Function FnHoliday()
Dim rst As New ADODB.Recordset
Set rst = Nothing
rst.CursorLocation = adUseServer
rst.Open "dbo.spGetHoliday '9-Jan-2008','" & 3 & "','IDR','-' ", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
FnHoliday = rst!newDate
Set rst = Nothing

End Sub

terakhir buat sebuah form, yang berisi textbox dan command button, dalam event on click command button di kasih perintah sebagai berikut :

txtDate=fnHoliday


silahkan bila anda ingin melakukan perubahan agar semakin baik dan sesuai dgn kebutuhan anda

Update Microsoft Jet 4.0 SP 8

Mungkin anda sering menjumpai pesan keamanan (security warning) yang muncul ketika anda menjalankan sebuah aplikasi yang dibuat dengan Microsoft Access. Pesan keamanan tersebut menyebutkan bahwa anda harus mengaktifkan "Sand box mode", atau "Block unsafe expression". Keduanya harus anda jawab "Yes" atau "OK" agar anda bisa terus menjalankan program.

Kemudian muncul pula pesan agar anda mengupdate Microsoft Jet 4.0 ke Service Pack 8. Untuk yang ini, anda perlu mendownload update dari situs Microsoft, dengan alamat sebagai berikut:
http://support.microsoft.com/kb/829558

Update untuk WindowsXP dan Windows Server 2003 bisa juga anda download di sini:

Elapsed Time

Sebuah function dibuat oleh Kerry Westphal, seorang program manager yang bekerja pada team Access, berfungsi untuk menghasilkan penyebutan tanggal dan waktu yang lebih manusiawi ketimbang hanya angka-angka tanggal dan jam. Function tersebut bernama ElapsedDays().
Aslinya terdapat di sini.

Dengan menggunakan function ini, anda bisa "menyebut keterangan" sebuah tanggal atau waktu "dibandingkan" dengan tanggal dan waktu yang ditentukan. Misalnya terhadap waktu pertemuan, anda bisa menyebut bahwa saat ini (terhadap waktu pertemuan itu) "Tinggal 15 menit lagi" atau "Sudah 1 jam yang lalu".

Cukup mengasyikan, sehingga saya merasa perlu mengadaptasikannya ke dalam bahasa Indonesia, dan mengubah sedikit prosedur sehingga menjadi lebih fleksibel.

Anda bisa langsung copy paste function berikut ini. Copy semua saja ke dalam sebuah module standard.

Untuk menjalankannya cukup ketik: ElapsedDays(TgWkt1, TgWkt2)
TgWkt1 adalah tanggal/waktu (datetime) dari kejadian/event yg ingin diukur (misal: tanggal pertemuan)
TgWkt2 adalah tanggal/waktu sekarang (atau tanggal/waktu tertentu yg anda inginkan). Parameter ini opsional, jadi kalau tidak diisi akan menggunakan waktu sekarang (Now).

Semoga bermanfaat.


Option Compare Database
Dim DateTimeDue As Date

Function ElapsedDays( _
Optional DateTimeStart As Date, _
Optional DateTimeEnd As Date _
) As String

'*************************************************************
' Function ElapsedDays(dateTimeStart As Date) As String
' Returns the time elapsed from today in a friendly string like,
' "A day ago"
'
' Originally created by: Kerry Westphal, a program manager who works on the Access team
' Adapted and refine by: Haer Talib, Office Access MVP from Indonesia
'*************************************************************

Dim interval As Double, days As Variant
If IsNull(DateTimeStart) Then Exit Function
DateTimeDue = IIf(DateTimeEnd = 0, Now, DateTimeEnd)
days = DateTimeStart - DateTimeDue

Dim leapYearNow
Dim leapYearBefore

If WhenLeapYear() = 1 Then
leapYearNow = 366
leapYearBefore = 365
Else:
If WhenLeapYear() = 2 Then
leapYearNow = 365
leapYearBefore = 366
Else
leapYearNow = 365
leapYearBefore = 365
End If
End If

Select Case days
Case Is < -leapYearBefore
ElapsedDays = "Lebih dari setahun yang lalu"
Case -leapYearBefore To -MonthTime(5) + -MonthTime(4)
ElapsedDays = "Tahun lalu"
Case -MonthTime(5) + -MonthTime(4) To -MonthTime(4)
ElapsedDays = "Sudah sebulan yang lalu"
Case -MonthTime(4) To -28
ElapsedDays = "Sudah empat minggu yang lalu"
Case -28 To -21
ElapsedDays = "Sudah tiga minggu yang lalu"
Case -21 To -13
ElapsedDays = "Sudah dua minggu yang lalu"
Case -13 To -7
ElapsedDays = "Sudah seminggu yang lalu"
Case -7 To -6
ElapsedDays = "Sudah enam hari yang lalu"
Case -6 To -5
ElapsedDays = "Sudah lima hari yang lalu"
Case -5 To -4
ElapsedDays = "Sudah empat hari yang lalu"
Case -4 To -3
ElapsedDays = "Sudah tiga hari yang lalu"
Case -3 To -2
ElapsedDays = "Sudah dua hari yang lalu"
Case -2 To -1
ElapsedDays = "Kemarin lusa"
Case -1 To 0
ElapsedDays = "Sudah " & ElapsedTimeString(DateTimeStart) & " yang lalu"
Case 0 To 1
ElapsedDays = "Tinggal " & ElapsedTimeString(DateTimeStart) & " lagi"
Case 1 To 2
ElapsedDays = "Besok"
Case 2 To 3
ElapsedDays = "Lusa"
Case 3 To 4
ElapsedDays = "Tiga hari lagi"
Case 4 To 5
ElapsedDays = "Empat hari lagi"
Case 5 To 6
ElapsedDays = "Lima hari lagi"
Case 6 To 7
ElapsedDays = "Enam hari lagi"
Case 7 To 14
ElapsedDays = "Seminggu lagi"
Case 14 To 21
ElapsedDays = "Dua minggu lagi"
Case 21 To 28
ElapsedDays = "Tiga minggu lagi"
Case 28 To MonthTime(1)
ElapsedDays = "Empat minggu lagi"
Case MonthTime(1) To MonthTime(2) + MonthTime(1)
ElapsedDays = "Sebulan lagi"
Case MonthTime(2) + MonthTime(1) To MonthTime(3) + MonthTime(2) + MonthTime(1)
ElapsedDays = "Dua bulan lagi"
Case MonthTime(3) + MonthTime(2) + MonthTime(1) To leapYearNow
ElapsedDays = "Kurang dari setahun lagi"
Case Is > leapYearNow
ElapsedDays = "Lebih dari setahun lagi"
End Select
If ElapsedDays = "0 yang lalu" Or ElapsedDays = "Dalam 0" Then ElapsedDays = "Sekarang"
End Function

Function IsLeapYear()
Dim leap As Variant
leap = DatePart("yyyy", DateTimeDue)
If (leap Mod 4 = 0) And ((leap Mod 100 <> 0) Or (leap Mod 400 = 0)) Then IsLeapYear = 29 Else IsLeapYear = 28
End Function

Public Function WhenLeapYear()
Dim leap As Variant
leap = DatePart("yyyy", DateTimeDue)
If (leap Mod 4 = 0) And ((leap Mod 100 <> 0) Or (leap Mod 400 = 0)) Then
WhenLeapYear = 1
Exit Function
Else
leap = leap - 1
If (leap Mod 4 = 0) And ((leap Mod 100 <> 0) Or (leap Mod 400 = 0)) Then
WhenLeapYear = 2
Exit Function
Else:
WhenLeapYear = 3
End If
End If
End Function

Function MonthTime() _
As Variant

Dim month As Variant
Dim MonthTime1(5) As Variant
month = DatePart("m", DateTimeDue)
Select Case month
Case 1 'January
MonthTime1(1) = 31 'January
MonthTime1(2) = IsLeapYear() 'February
MonthTime1(3) = 31 'March
MonthTime1(4) = 31 'December
MonthTime1(5) = 30 'November
Case 2 ' February
MonthTime1(1) = IsLeapYear() 'February
MonthTime1(2) = 31 'March
MonthTime1(3) = 30 'April
MonthTime1(4) = 31 'January
MonthTime1(5) = 31 'December
Case 3 'March
MonthTime1(1) = 31 'March
MonthTime1(2) = 30 'April
MonthTime1(3) = 31 'May
MonthTime1(4) = IsLeapYear() ' February
MonthTime1(5) = 31 'January
Case 4 'April
MonthTime1(1) = 30 'April
MonthTime1(2) = 31 'May
MonthTime1(3) = 30 'June
MonthTime1(4) = 31 'March
MonthTime1(5) = IsLeapYear() ' February
Case 5 'May
MonthTime1(1) = 31 'May
MonthTime1(2) = 30 'June
MonthTime1(3) = 31 'July
MonthTime1(4) = 30 'April
MonthTime1(5) = 31 'March
Case 6 'June
MonthTime1(1) = 30 'June
MonthTime1(2) = 31 'July
MonthTime1(3) = 31 'August
MonthTime1(4) = 31 'May
MonthTime1(5) = 30 'April
Case 7 'July
MonthTime1(1) = 31 'July
MonthTime1(2) = 31 'August
MonthTime1(3) = 30 'September
MonthTime1(4) = 30 'June
MonthTime1(5) = 31 'May
Case 8 'August
MonthTime1(1) = 30 'August
MonthTime1(2) = 31 'September
MonthTime1(3) = 31 'October
MonthTime1(4) = 31 'July
MonthTime1(5) = 30 'June
Case 9 'September
MonthTime1(1) = 31 'September
MonthTime1(2) = 31 'October
MonthTime1(3) = 30 'November
MonthTime1(4) = 30 'August
MonthTime1(5) = 31 'July
Case 10 'October
MonthTime1(1) = 31 'October
MonthTime1(2) = 30 'November
MonthTime1(3) = 31 'December
MonthTime1(4) = 31 'September
MonthTime1(5) = 30 'August
Case 11 'November
MonthTime1(1) = 30 'November
MonthTime1(2) = 31 'December
MonthTime1(3) = 31 'January
MonthTime1(4) = 31 'October
MonthTime1(5) = 31 'September
Case 12 'December
MonthTime1(1) = 31 'December
MonthTime1(2) = 31 'January
MonthTime1(3) = IsLeapYear() 'February
MonthTime1(4) = 30 'November
MonthTime1(5) = 31 'October
End Select
MonthTime = MonthTime1
End Function

Function ElapsedTimeString( _
Optional DateTimeStart As Date _
) As String

'*************************************************************
' Returns the time elapsed between a starting Date/Time and
' an ending Date/Time formatted as a string that looks like
' this:
' "20 hours, 30 minutes".
'*************************************************************

Dim interval As Double, str As String, days As Variant
Dim hours As String, minutes As String, seconds As String
If IsNull(DateTimeStart) = True Then Exit Function
interval = DateTimeDue - DateTimeStart
hours = Format(interval, "h")
minutes = Format(interval, "n")

' Hours part of the string
str = str & IIf(hours = "0", "", _
hours & " jam")
str = str & IIf(hours = "0", "", _
IIf(minutes <> "0", ", ", " "))

' Minutes part of the string
str = str & IIf(minutes = "0", "", _
minutes & " menit")

ElapsedTimeString = IIf(str = "", "0", str)

End Function


Access 2007 Developer Extensions

Access 2007 Developer Extensions menyediakan alat/cara untuk mengemas program aplikasi yang dibuat dengan Access 2007 sehingga siap untuk didistribusikan ke pasar/pemakai.

Access 2007 Developer Extensions terdiri dari:

Package Solution
Yaitu sebuah wizard untuk membuat sebuah Windows Installer Package (MSI) untuk menginstal file database dan file-file lainnya, termasuk menginstal Access 2007 Runtime atau memprompt pemakai untuk mendownload Access 2007 Runtime.

Save As Template
Yaitu fasilitas untuk membuat database template (ACCDT).

Source Code Control
Yaitu fasilitas yang bisa diintegarsikan dengan Microsoft Visual Source Safe atau sistem pengendali kode sumber yang lain untuk mengontrol cek-in dan cek-out object-object database dan data.

Access 2007 Developer Extensions TIDAK lagi mengandung Property Scanner dan Customer Startup Wizard seperti pada Developer Extensions versi terdahulu.

Untuk mendownload Access 2007 Developer Extensions, klik di sini.
Untuk melihat bagaimana cara menambahkan program ke sebuah paket deployment Access 2007, klik di sini.

Access 2007 Runtime

Access 2007 Runtime adalah sistem yang bisa menjalankan aplikasi yang dibuat dengan Access 2007 tanpa harus menginstal Microsoft Office Access. Berbeda dengan sistem runtime versi sebelumnya, Access 2007 Runtime BEBAS didownload dan didistribusikan ke pemakai program Anda.

Untuk mendownload Access 2007 Runtime, klik di sini.

Sedikit Sentuhan Pada Aplikasi Access


Oleh: Lusky Kurniawan

Sebenarnya bukanlah hal baru kalau ada developer yang "memandang sebelah mata" terhadap kemampuan Microsoft Access. Bahkan, seringkali kemudahan - kemudahan yang ditawarkan Microsoft Access dijadikannya sebagai bahan "ejekan" bagi pelakunya. Sepertinya Access hanya dianggap sebagai "mainan". Tentu saja hal ini seringkali membuat hati saya menjadi "panas". Terlebih beberapa hari yang lalu, ketika seorang developer "lain" meremehkan Access didepan saya. Sungguh, saya merasa sangat tidak simpatik. Akhirnya, saya terpaksa mendemonstrasikan sedikit aplikasi yang saya bisa. Apa yang terjadi?????

Allaahu Akbar ! Hal hasil, sang developer "lain" pun terbelalak melotot seakan tak percaya. Untung saja icon Access belum saya ganti sehingga lebih meyakinkan bahwa aplikasi tersebut memang Microsoft Access.

Berbicara tentang Access, memang menjadi kesenangan tersendiri bagi saya. Mungkin juga bagi developer access atau pun peminat Access yang lainnya. Access memang bukanlah seperti aplikasi lain yang "mandiri" dan "powerfull". Namun, dengan eksistensinya yang merupakan bagian dari paket Microsoft Office, kemampuan Access dalam pengolahan database patut diacungkan jempol. Dengan segala kemudahan dan kecepatan yang ditawarkan, telah menjadikan Access diatas "angin".

Bagi saya, tujuan pembuatan aplikasi Access tidaklah selalu dinilai dari banyaknya pemrograman pada area VBA. Tetapi lebih dari fleksibilitasnya dalam menjawab persoalan yang ada. VBA hanyalah sarana pendukung saja. Namun demikian, tetaplah penting perannya dalam mengoptimalkan aplikasi yang dibuat. Terutama untuk suatu kasus yang memang harus dipecahkan olehnya.

Dalam membangun aplikasi Access, ada sedikit tip yang selayaknya tidak diabaikan begitu saja. Yaitu memberikan "sentuhan" pada setiap aplikasi yang kita buat. Dengan sedikit "sentuhan" tadi, dapat menambah nilai jual pada aplikasi tersebut. Dan membuat user, semakin 'betah" dalam menggunakannya. Sentuhan disini dapat diartikan sebagai keindahan tampilan (interface), kemudahan penggunaan alur program dan lain sebagainya. Dengan demikian, menjadi lebih sempurnalah aplikasi Access yang kita buat.

Selamat Berkarya !

Access 2003 Developer Extensions


Banyak pembaca buku "Membuat Access Project dengan Database SQL Server", karya Haer Talib, penerbit Elex Media Komputindo, 2005, mempertanyakan tentang Access 2003 Developer Extensions.
Artikel tentang software tersebut bisa anda lihat di situs Microsoft, dengan alamat: http://msdn2.microsoft.com/en-us/office/aa905403.aspx.

Software Access 2003 Developer Extensions merupakan bagian dari produk bertajuk "Visual Studio Tools for the Microsoft Office System". Detail produk ini bisa dibaca pada alamat: http://msdn2.microsoft.com/en-us/vstudio/aa718674.aspx.

Kesulitan lain yang dirasakan oleh penanya adalah sulitnya menemukan produk yang dimaksud di pasar. Pihak Microsoft sendiri (Indonesia) tampaknya kurang memahami produk yang dimaksud sehingga tidak bisa memberikan informasi yang memuaskan. Ketika mitra penjualannya dihubungi, mereka juga kurang mengerti. Untuk itu, jika anda kebetulan sedang mencari produk yang dimaksud, cobalah menyimak tata cara melakukan pembelian di http://msdn2.microsoft.com/en-us/vstudio/aa700832.aspx.

Di Indonesia, Anda bisa menghubungi:
62 21 5155151 (Toll free in Jakarta)
0 800 120 1201 (Toll free outside Jakarta)
001803 8529432 (Toll)
(Fax: (65) 63246181)
Email: msscsea@microsoft.com

Semoga berhasil mendapatkannya.