Training MS Access, 29-30 Nopember 2014

RumahAccess.com kembali menggelar program training dengan konsep 2 hari berturut-turut. Konsep ini ternyata efektif karena peserta bisa mengambil materi "Basic" (dasar) dan langsung melanjutkan ke materi "Programming" (pembuatan program aplikasi). Cara ini antara lain memudahkan peserta yang datang dari luar Jabodetabek, sehingga hanya perlu sekali datang ke Jakarta untuk mengikuti program training.

Seperti sebelumnya, peserta diberi kebebasan untuk mengikuti salah satu materi (Basic atau Programming), atau bisa langsung mengambil kedua-duanya. Peserta yang sudah bisa menggunakan MS Access bisa langsung mengikuti materi Programming, namun pada kenyataannya peserta tetap perlu/disarankan mengambil materi Basic untuk memperkuat pengertian tentang database dan pemakaian MS Access sebagai database tool.

Ada yang bertanya apa beda kedua materi tersebut.

Materi Basic akan mengenalkan konsep atau teori database, lalu mengenalkan pemakaian MS Access secara tepat. Di sini trainer akan menunjukkan komponen-komponen yang perlu digunakan dan komponen mana yang bisa diabaikan, sehingga pemakaian MS Access bisa lebih tepat tanpa perlu merisaukan semua fitur yang tersedia.

Materi Programming merupakan lanjutan dari materi Basic, dimana pada materi ini trainer akan mengenalkan tata cara pembuatan program aplikasi dengan MS Access. Di sini kita akan ditunjuki komponen / alat mana yang perlu digunakan (atau yang umum/biasa digunakan) serta bagaimana cara penggunaannya yang tepat.

Dengan metode pengenalan secara tepat ini peserta akan lebih cepat dalam proses belajarnya, tidak perlu mempelajari semuanya dan bingung harus menggunakan komponen yang mana / cara yang bagaimana. Oleh karena metode belajar ini berupa training (pelatihan) maka peserta akan diajak langsung berlatih (praktek) di bawah bimbingan trainer, sehingga kesulitan-kesulitan yang mungkin muncul ketika peserta melakukannya sendiri akan langsung dibimbing cara menyelesaikannya.

Manfaatkan kesempatan belajar secara cepat ini (tempat terbatas) atau anda akan menunggu jadwal berikutnya lagi (belum dapat dipastikan, tergantung jumlah peserta dan kesediaan Trainer).

Membuat modul terbilang pada form

Oleh : Sumiyanto Surabaya
1.       Buat modulTerbilang copy paste dari module tersebut: ­­­­­­­­­
module tebilang
module terbilang
Public Function Terbilang(ByVal MyNumber, ByVal vMataUang)
    Dim MataUang As String, cMataUang As String
    Dim Rupiah, sen, Temp
    Dim DecimalPlace, Count
    ReDim Place(9) As String
    Dim a As Long
  
    cMataUang = vMataUang
    If cMataUang = "IDR" Then
        MataUang = " rupiah"
    ElseIf cMataUang = "USD" Then
        MataUang = " dolar"
    ElseIf cMataUang = "JPY" Then
        MataUang = " yen"
    ElseIf cMataUang = "SGD" Then
        MataUang = " dolar singapura"
    ElseIf cMataUang = "GBP" Then
        MataUang = " poundsterling"
    ElseIf cMataUang = "EUR" Then
        MataUang = " euro"
    Else
        MataUang = " "
    End If
  
    Place(2) = " ribu"
    Place(3) = " juta"
    Place(4) = " milyar"
    Place(5) = " trilyun"
    ' String representation of amount.
    MyNumber = Trim(Str(MyNumber))
    ' Position of decimal place 0 if none.
    DecimalPlace = InStr(MyNumber, ".")
    ' Convert sen and set MyNumber to dollar amount.
    If DecimalPlace > 0 Then
        sen = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
        MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If
    Count = 1
    Do While MyNumber <> ""
        Temp = GetHundreds(Right(MyNumber, 3))
        If Temp <> "" Then Rupiah = Temp & Place(Count) & Rupiah
        If Left(Trim(Rupiah), 9) = "Satu Ribu" Then
            Rupiah = " Seribu" & Mid(Rupiah, 11)
        End If
        If Len(MyNumber) > 3 Then
            MyNumber = Left(MyNumber, Len(MyNumber) - 3)
        Else
            MyNumber = ""
        End If
        Count = Count + 1
    Loop
    Select Case Rupiah
        Case ""
            Rupiah = "nol"
        Case Else
            Rupiah = Rupiah
    End Select
    Select Case sen
        Case ""
            sen = "" ' dan nol sen"
        Case Else
            sen = " koma" & sen
    End Select
    Terbilang = Trim(Rupiah & sen & MataUang)
End Function

' Converts a number from 100-999 into text
Function GetHundreds(ByVal MyNumber)
    Dim Result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right("000" & MyNumber, 3)
    ' Convert the hundreds place.
    If Mid(MyNumber, 1, 1) <> "0" Then
        If Mid(MyNumber, 1, 1) = "1" Then
            Result = " seratus"
            Else
            Result = GetDigit(Mid(MyNumber, 1, 1)) & " ratus"
        End If
    End If
    ' Convert the tens and ones place.
    If Mid(MyNumber, 2, 1) <> "0" Then
        Result = Result & GetTens(Mid(MyNumber, 2))
    Else
        Result = Result & GetDigit(Mid(MyNumber, 3))
    End If
    GetHundreds = Result
End Function

' Converts a number from 10 to 99 into text.
Function GetTens(TensText)
    Dim Result As String
    Result = ""          ' Null out the temporary function value.
    If Val(Left(TensText, 1)) = 1 Then   ' If value between 10-19...
        Select Case Val(TensText)
            Case 10: Result = " sepuluh"
            Case 11: Result = " sebelas"
            Case 12: Result = " dua belas"
            Case 13: Result = " tiga belas"
            Case 14: Result = " empat belas"
            Case 15: Result = " lima belas"
            Case 16: Result = " enam belas"
            Case 17: Result = " tujuh belas"
            Case 18: Result = " delapan belas"
            Case 19: Result = " sembilan belas"
            Case Else
        End Select
    Else                                 ' If value between 20-99...
        Select Case Val(Left(TensText, 1))
            Case 2: Result = " dua puluh"
            Case 3: Result = " tiga puluh"
            Case 4: Result = " empat puluh"
            Case 5: Result = " lima puluh"
            Case 6: Result = " enam puluh"
            Case 7: Result = " tujuh puluh"
            Case 8: Result = " delapan puluh"
            Case 9: Result = " sembilan puluh"
            Case Else
        End Select
        Result = Result & GetDigit(Right(TensText, 1))  ' Retrieve ones place.
    End If
    GetTens = Result
End Function

' Converts a number from 1 to 9 into text.
Function GetDigit(Digit)
    Select Case Val(Digit)
        Case 1: GetDigit = " satu"
        Case 2: GetDigit = " dua"
        Case 3: GetDigit = " tiga"
        Case 4: GetDigit = " empat"
        Case 5: GetDigit = " lima"
        Case 6: GetDigit = " enam"
        Case 7: GetDigit = " tujuh"
        Case 8: GetDigit = " delapan"
        Case 9: GetDigit = " sembilan"
        Case Else: GetDigit = ""
    End Select
End Function
2.       Buat textbox :
buat textbox
buat text box
a.       txtMataUang
b.      txtAngka
c.       txtTerbilang

3.       untuk memudahkan skenarionya diatas saya buat jenis mata uang model combo box, dengan mata uang IDR, USD, JPY, SGD, GBP, EUR.
Form Terbilang
Form Terbilang
4.       Buat event after update pada txtAngka:

Private Sub txtAngka_AfterUpdate()
txtTerbilang = terbilang([txtAngka], [txtMataUang])
End Sub

Ini memang sering ditanyakan, semoga tidak bosan. Lebih baik Anda buat sendiri dari awal, sehingga mengerti alurnya, dari pada instant. Semoga bermanfaat

When I Insert or Update a Record in Linked Tables, I Get #DELETED#

Discussion

When using Microsoft Access as a front-end to MySQL through linked tables, you may see fields that contain #DELETED# instead of real data.

Solution

If the inserted or updated records are shown as #DELETED# in the access, then:

  • If you are using MS Access 2000, you should get and install the newest (version 2.6 or higher) Microsoft MDAC (Microsoft Data Access Components) from http://www.microsoft.com/data/. This will fix a bug in MS Access that when you export data to MySQL, the table and column names aren't specified. You should also download and apply the latest Microsoft Jet 4.0 Service Pack, which can be found at http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114. This will fix some cases where columns are marked as #DELETED# in Access.
  • For all versions of Access, you should enable the MyODBC Return matching rows option.
  • You should have a timestamp in all tables that you want to be able to update. For maximum portability, don't use a length specification in the column declaration. That is, use TIMESTAMP, not TIMESTAMP(n), n < 14.
  • You should have a primary key in the table. If not, new or updated rows may show up as #DELETED#.
  • Use only DOUBLE float fields. Access fails when comparing with single floats. The symptom usually is that new or updated rows may show up as #DELETED# or that you can't find or update rows.
  • If you are using MyODBC to link to a table that has a BIGINT column, the results will be displayed as #DELETED. The work around solution is:
    • Have one more dummy column with TIMESTAMP as the data type.
    • Select the Change BIGINT columns to INT option in the connection dialog in ODBC DSN Administrator.
    • Delete the table link from Access and re-create it.
    Old records still will display as #DELETED#, but newly added/updated records will be displayed properly.
Source: http://www.mysqlab.net/knowledge/kb/detail/topic/odbc/id/5071

Training Agustus 2014

Training MS Access Basic - Programming, Sabtu-Minggu, 23-24 Agustus 2014 (2 hari) telah berlangsung dengan sukses. Training ini dilaksanakan di kantor PT Mitra Sinergi Adhitama (MSA), Jl. Ciputat Raya Pondok Pinang, Jakarta Selatan, sebagai alternatif pengganti lokasi Jl. Sabang yang dekat dengan lokasi demo sengketa pilpres.

Berikut ini beberapa foto training. Foto lebih lengkap dapat dilihat di Facebook.com/RumahAccess



Training MS Access 23-24 Agustus 2014

Banyaknya permintaan training MS Access yang masuk ke RumahAccess.com membuat kami harus segera mengadakan lagi program training tersebut. Kali ini menggunakan konsep yang sama dengan sebelumnya, yaitu langsung 2 hari berturut-turut, sehingga peserta bisa langsung "nyambung" dari materi Basic (dasar) ke materi Programming (pembuatan program aplikasi). Cara ini juga memudahkan peserta yang datang dari luar Jabodetabek, sehingga hanya perlu sekali datang ke Jakarta untuk mengikuti program training.

Peserta bisa mengikuti salah satu materi (Basic atau Programming), atau bisa langsung mengambil dua-duanya. Ada yang bertanya apa beda kedua materi tersebut.

Materi Basic akan mengenalkan konsep atau teori database, lalu mengenalkan pemakaian MS Access secara tepat. Di sini Trainer akan menunjukkan komponen-komponen yang perlu digunakan dan komponen mana yang bisa diabaikan, sehingga pemakaian MS Access bisa lebih tepat tanpa perlu menggunakan semuanya.

Materi Programming merupakan kelanjutan dari materi Basic, dimana pada materi ini Trainer akan mengenalkan tata cara pembuatan program aplikasi dengan MS Access. Di sini pun kita akan ditunjukkan komponen / alat mana yang perlu digunakan (atau yang umum/biasa digunakan) serta bagaimana penggunaannya yang tepat.

Dengan metode pengenalan secara tepat ini peserta akan lebih cepat dalam proses belajarnya, tidak perlu mempelajari semuanya dan bingung harus menggunakan komponen / cara yang bagaimana. Dan karena metode belajar ini berupa training (pelatihan) maka kepada peserta akan diajak langsung berlatih (praktek) di bawah bimbingan Trainer, sehingga kesulitan-kesulitan yang mungkin muncul akan langsung diberikan solusianya.

Manfaatkan kesempatan belajar secara cepat ini, tempat terbatas, atau anda akan menunggu jadwal berikutnya lagi (belum dapat dipastikan, tergantung jumlah peserta dan kesediaan Trainer).