InfoLab data export daemon: Perbedaan revisi
(→Menyisipkan Modul) |
|||
(14 revisi antara oleh pengguna yang sama tidak ditampilkan) | |||
Baris 1: | Baris 1: | ||
=InfoLab data export daemon: upload data laboratorium Otomatis= | =InfoLab data export daemon: upload data laboratorium Otomatis= | ||
==Pengenalan== | ==Pengenalan== | ||
− | iSIKHNAS modul upload data laboratorium bertujuan untuk mengintegrasikan data hasil pengujian laboratorium (tipe A) secara otomatis melalui E-Mail. Modul ini merupakan salah satu fitur yang dimiliki iSIKHNAS yang di sisipkan kedalam infolab yang berbasis Ms. Access, memanfaatkan Server SMTP Gmail. Server SMTP Gmail berfungsi me-relai pesan dari perangkat atau aplikasi(infolab). Dengan menghubungkannya ke smtp.gmail.com pada port 465, maka anda dapat mengirim email ke siapa saja. Untuk tersambung menggunakan SSL, Anda harus memberikan nama pengguna dan sandi Google untuk autentikasi. | + | iSIKHNAS modul upload data laboratorium bertujuan untuk mengintegrasikan data hasil pengujian laboratorium (tipe A) secara otomatis melalui E-Mail. Modul ini merupakan salah satu fitur yang dimiliki iSIKHNAS yang di sisipkan kedalam infolab yang berbasis Ms. Access, memanfaatkan Server SMTP Gmail. Server SMTP Gmail berfungsi me-relai pesan dari perangkat atau aplikasi(infolab). Dengan menghubungkannya ke smtp.gmail.com pada port 465, maka anda dapat mengirim email ke siapa saja. Untuk tersambung menggunakan SSL, Anda harus memberikan nama pengguna dan sandi Google untuk autentikasi. |
+ | |||
+ | Infolab di konfigurasi sedimikian rupa sehingga selalu terkait dengan data refference di iSIKHNAS. Dari konfigurasi ini akan menghasilkan data yang akan di eksport dalam bentuk ms.excel (*.xlsx) melalui Query. File inilah kemudian akan dikirimkan ke iSIKHNAS secara berkala. | ||
==Instalasi== | ==Instalasi== | ||
− | + | ||
+ | ===''' Membuat Tabel'''=== | ||
Nama Tabel : tIMEL | Nama Tabel : tIMEL | ||
− | Fieldname DataType | + | {| class="wikitable" |
− | + | |- | |
− | + | ! Fieldname !! DataType !! input mask !! Description | |
− | Kepada | + | |- |
− | Jamkirim1 | + | | Email || Text(100) || || Akun Gmail |
− | Jamkirim2 | + | |- |
− | Lampiran Text(255) | + | | Katasandi || Text(100) || Password || Password Akun Gmail |
+ | |- | ||
+ | | Kepada || Text(100) || || Akun Penerima Email | ||
+ | |- | ||
+ | | Jamkirim1 || Datetime || || Jam Pengiriman Email 1 | ||
+ | |- | ||
+ | | Jamkirim2 || Datetime || || Jam Pengiriman Email 2 | ||
+ | |- | ||
+ | | Lampiran || Text(255) || || File Lampiran | ||
+ | |} | ||
+ | |||
+ | ===''' Membuat Form'''=== | ||
+ | Nama Form : fIMEL | ||
− | + | [[File:Form.jpg|Design Form]] | |
− | + | - | |
− | + | ||
− | + | ===''' Menuliskan Kode Program'''=== | |
− | + | ||
− | Option Compare Database | + | ''' 3.1. Deklarasi Variabel''' |
− | Option Explicit | + | Option Compare Database |
− | Dim rsz As DAO.Recordset | + | Option Explicit |
− | Dim SQLz As String | + | Dim rsz As DAO.Recordset |
− | + | Dim SQLz As String | |
− | Private Sub Form_Load() | + | ''' 3.2. Form Event OnLoad''' |
− | SQLz = "select * from timel;" | + | Private Sub Form_Load() |
− | Set rsz = CurrentDb.OpenRecordset(SQLz) | + | SQLz = "select * from timel;" |
− | End Sub | + | Set rsz = CurrentDb.OpenRecordset(SQLz) |
− | + | End Sub | |
− | Private Sub Form_Timer() | + | ''' 3.3. Form Event OnTimer''' |
− | If IsInternetConnected() = True Then | + | Private Sub Form_Timer() |
− | Application.Echo False | + | If IsInternetConnected() = True Then |
− | Me!Label1.Caption = Format(Now(), "HH:NN:SS") | + | Application.Echo False |
− | Application.Echo True | + | Me!Label1.Caption = Format(Now(), "HH:NN:SS") |
− | If UCase(Me!Label1.Caption) = rsz!JamKirim1 Then Call Command_Send_Click | + | Application.Echo True |
− | If UCase(Me!Label1.Caption) = rsz!JamKirim2 Then Call Command_Send_Click | + | If UCase(Me!Label1.Caption) = rsz!JamKirim1 Then Call Command_Send_Click |
− | Else | + | If UCase(Me!Label1.Caption) = rsz!JamKirim2 Then Call Command_Send_Click |
− | Application.Echo False | + | Else |
− | Me!Label1.Caption = Format(Now(), _ | + | Application.Echo False |
− | "HH:NN:SS") & " No/Limited Connection" | + | Me!Label1.Caption = Format(Now(), _ |
− | Application.Echo True | + | "HH:NN:SS") & " No/Limited Connection" |
− | End If | + | Application.Echo True |
− | End Sub | + | End If |
− | + | End Sub | |
− | Private Sub Command_Send_Click() | + | ''' 3.4. Command_Send OnClick''' |
− | DoCmd.TransferSpreadsheet acExport, acSpreadsheet_ | + | Private Sub Command_Send_Click() |
− | TypeExcel12Xml , "infolab", "C:/infolab/dataexcell.xlsx", True, "", False | + | DoCmd.TransferSpreadsheet acExport, acSpreadsheet_ |
− | If IsInternetConnected() = True Then | + | TypeExcel12Xml , "infolab", "C:/infolab/dataexcell.xlsx", True, "", False |
− | Call SendMail | + | If IsInternetConnected() = True Then |
− | End If | + | Call SendMail |
− | End Sub | + | End If |
+ | End Sub | ||
==Menyisipkan Modul== | ==Menyisipkan Modul== | ||
− | + | Modul ini terdiri dari 2 (dua) Fungsi utama yaitu Fungsi Cek koneksi Internet dan fungsi untuk koneksi ke mailserver dan mengirimkan email. Modul ditulis melalui pemrograman(Visual Basic Editor) dengan bahasa pemrograman Visual Basic. VBA didesain untuk melakukan beberapa tugas, seperti halnya mengkustomisasi sebuah aplikasi dan untuk mengendalikan aplikasi tersebut melakukan serangkaian objek terprogram. Versi VBA mendukung semua program dalam Microsoft Office, yakni Microsoft Excel, Microsoft Access, Microsoft Word, Microsoft Outlook, Microsoft FrontPage, serta Microsoft PowerPoint dan juga Microsoft Visual Studio. Dua fungsi dalam aplikasi infolab ini disimpan dengan nama mIMEL. | |
− | Option Compare Database | + | Option Compare Database |
− | Private Declare Function InternetGetConnectedState _ | + | Private Declare Function InternetGetConnectedState _ |
Lib "wininet.dll" (ByRef dwflags As Long, _ | Lib "wininet.dll" (ByRef dwflags As Long, _ | ||
ByVal dwReserved As Long) As Long | ByVal dwReserved As Long) As Long | ||
− | Private Const INTERNET_CONNECTION_MODEM As Long = &H1 | + | Private Const INTERNET_CONNECTION_MODEM As Long = &H1 |
− | Private Const INTERNET_CONNECTION_LAN As Long = &H2 | + | Private Const INTERNET_CONNECTION_LAN As Long = &H2 |
− | Private Const INTERNET_CONNECTION_PROXY As Long = &H4 | + | Private Const INTERNET_CONNECTION_PROXY As Long = &H4 |
− | Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20 | + | Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20 |
− | Option Explicit | + | Option Explicit |
− | Function IsInternetConnected() As Boolean | + | 'Fungsi Cek koneksi Internet |
+ | Function IsInternetConnected() As Boolean | ||
Dim L As Long | Dim L As Long | ||
Dim R As Long | Dim R As Long | ||
Baris 76: | Baris 93: | ||
End If | End If | ||
End If | End If | ||
− | End Function | + | End Function |
− | + | 'Fungsi Kirim Email | |
− | Public Sub SendMail() | + | Public Sub SendMail() |
− | Dim iCfg As CDO.Configuration | + | Dim iCfg As CDO.Configuration |
− | Dim iMsg As CDO.Message | + | Dim iMsg As CDO.Message |
− | Set iCfg = New CDO.Configuration | + | Set iCfg = New CDO.Configuration |
− | Set iMsg = New CDO.Message | + | Set iMsg = New CDO.Message |
− | Dim xrs As DAO.Recordset | + | Dim xrs As DAO.Recordset |
− | Dim xSQL As String | + | Dim xSQL As String |
− | xSQL = "select * from timel;" | + | xSQL = "select * from timel;" |
− | Set xrs = CurrentDb.OpenRecordset(xSQL) | + | Set xrs = CurrentDb.OpenRecordset(xSQL) |
− | With iCfg.Fields | + | With iCfg.Fields |
.Item(cdoSendUsingMethod) = cdoSendUsingPort | .Item(cdoSendUsingMethod) = cdoSendUsingPort | ||
.Item(cdoSMTPServerPort) = 465 | .Item(cdoSMTPServerPort) = 465 | ||
Baris 97: | Baris 114: | ||
.Item(cdoSendEmailAddress) = "Do Not Reply" & "<" & xrs!EMail & ">" | .Item(cdoSendEmailAddress) = "Do Not Reply" & "<" & xrs!EMail & ">" | ||
.Update | .Update | ||
− | End With | + | End With |
− | + | With iMsg | |
− | With iMsg | ||
.Configuration = iCfg | .Configuration = iCfg | ||
.Subject = "Subject" | .Subject = "Subject" | ||
Baris 106: | Baris 122: | ||
.AddAttachment xrs!Lampiran | .AddAttachment xrs!Lampiran | ||
.Send | .Send | ||
− | End With | + | End With |
− | Set iMsg = Nothing | + | Set iMsg = Nothing |
− | Set iCfg = Nothing | + | Set iCfg = Nothing |
− | + | End Sub | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | End Sub |
Revisi terkini pada 19 Agustus 2015 11.39
Daftar isi
InfoLab data export daemon: upload data laboratorium Otomatis
Pengenalan
iSIKHNAS modul upload data laboratorium bertujuan untuk mengintegrasikan data hasil pengujian laboratorium (tipe A) secara otomatis melalui E-Mail. Modul ini merupakan salah satu fitur yang dimiliki iSIKHNAS yang di sisipkan kedalam infolab yang berbasis Ms. Access, memanfaatkan Server SMTP Gmail. Server SMTP Gmail berfungsi me-relai pesan dari perangkat atau aplikasi(infolab). Dengan menghubungkannya ke smtp.gmail.com pada port 465, maka anda dapat mengirim email ke siapa saja. Untuk tersambung menggunakan SSL, Anda harus memberikan nama pengguna dan sandi Google untuk autentikasi.
Infolab di konfigurasi sedimikian rupa sehingga selalu terkait dengan data refference di iSIKHNAS. Dari konfigurasi ini akan menghasilkan data yang akan di eksport dalam bentuk ms.excel (*.xlsx) melalui Query. File inilah kemudian akan dikirimkan ke iSIKHNAS secara berkala.
Instalasi
Membuat Tabel
Nama Tabel : tIMEL
Fieldname | DataType | input mask | Description |
---|---|---|---|
Text(100) | Akun Gmail | ||
Katasandi | Text(100) | Password | Password Akun Gmail |
Kepada | Text(100) | Akun Penerima Email | |
Jamkirim1 | Datetime | Jam Pengiriman Email 1 | |
Jamkirim2 | Datetime | Jam Pengiriman Email 2 | |
Lampiran | Text(255) | File Lampiran |
Membuat Form
Nama Form : fIMEL
Menuliskan Kode Program
3.1. Deklarasi Variabel
Option Compare Database Option Explicit Dim rsz As DAO.Recordset Dim SQLz As String
3.2. Form Event OnLoad
Private Sub Form_Load() SQLz = "select * from timel;" Set rsz = CurrentDb.OpenRecordset(SQLz) End Sub
3.3. Form Event OnTimer
Private Sub Form_Timer() If IsInternetConnected() = True Then Application.Echo False Me!Label1.Caption = Format(Now(), "HH:NN:SS") Application.Echo True If UCase(Me!Label1.Caption) = rsz!JamKirim1 Then Call Command_Send_Click If UCase(Me!Label1.Caption) = rsz!JamKirim2 Then Call Command_Send_Click Else Application.Echo False Me!Label1.Caption = Format(Now(), _ "HH:NN:SS") & " No/Limited Connection" Application.Echo True End If End Sub
3.4. Command_Send OnClick
Private Sub Command_Send_Click() DoCmd.TransferSpreadsheet acExport, acSpreadsheet_ TypeExcel12Xml , "infolab", "C:/infolab/dataexcell.xlsx", True, "", False If IsInternetConnected() = True Then Call SendMail End If End Sub
Menyisipkan Modul
Modul ini terdiri dari 2 (dua) Fungsi utama yaitu Fungsi Cek koneksi Internet dan fungsi untuk koneksi ke mailserver dan mengirimkan email. Modul ditulis melalui pemrograman(Visual Basic Editor) dengan bahasa pemrograman Visual Basic. VBA didesain untuk melakukan beberapa tugas, seperti halnya mengkustomisasi sebuah aplikasi dan untuk mengendalikan aplikasi tersebut melakukan serangkaian objek terprogram. Versi VBA mendukung semua program dalam Microsoft Office, yakni Microsoft Excel, Microsoft Access, Microsoft Word, Microsoft Outlook, Microsoft FrontPage, serta Microsoft PowerPoint dan juga Microsoft Visual Studio. Dua fungsi dalam aplikasi infolab ini disimpan dengan nama mIMEL.
Option Compare Database Private Declare Function InternetGetConnectedState _ Lib "wininet.dll" (ByRef dwflags As Long, _ ByVal dwReserved As Long) As Long Private Const INTERNET_CONNECTION_MODEM As Long = &H1 Private Const INTERNET_CONNECTION_LAN As Long = &H2 Private Const INTERNET_CONNECTION_PROXY As Long = &H4 Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20 Option Explicit 'Fungsi Cek koneksi Internet Function IsInternetConnected() As Boolean Dim L As Long Dim R As Long R = InternetGetConnectedState(L, 0&) If R = 0 Then IsInternetConnected = False Else If R <= 4 Then IsInternetConnected = True Else IsInternetConnected = False End If End If End Function 'Fungsi Kirim Email Public Sub SendMail() Dim iCfg As CDO.Configuration Dim iMsg As CDO.Message Set iCfg = New CDO.Configuration Set iMsg = New CDO.Message Dim xrs As DAO.Recordset Dim xSQL As String xSQL = "select * from timel;" Set xrs = CurrentDb.OpenRecordset(xSQL) With iCfg.Fields .Item(cdoSendUsingMethod) = cdoSendUsingPort .Item(cdoSMTPServerPort) = 465 .Item(cdoSMTPServer) = "smtp.gmail.com" .Item(cdoSMTPUseSSL) = True .Item(cdoSMTPAuthenticate) = 1 .Item(cdoSendUserName) = xrs!EMail .Item(cdoSendPassword) = xrs!KataSandi .Item(cdoSendEmailAddress) = "Do Not Reply" & "<" & xrs!EMail & ">" .Update End With With iMsg .Configuration = iCfg .Subject = "Subject" .To = xrs!Kepada .TextBody = "" .AddAttachment xrs!Lampiran .Send End With Set iMsg = Nothing Set iCfg = Nothing End Sub