InfoLab data export daemon: Perbedaan revisi

(Instalasi)
(Menyisipkan Modul)
 
(12 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
+
 
 +
===''' Membuat Tabel'''===
 
Nama Tabel : tIMEL
 
Nama Tabel : tIMEL
 +
  {| class="wikitable"
 +
|-
 +
! Fieldname !! DataType !! input mask !! Description
 +
|-
 +
| Email || 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
 +
 +
[[File:Form.jpg|Design Form]]
 +
-
  
{| class="wikitable"
+
===''' Menuliskan Kode Program'''===
|-
 
! Fieldname !! DataType !! input mask !! Description
 
|-
 
| Email || 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
 
  
|}
+
'''  3.1. Deklarasi Variabel'''
# Membuat Form
+
  Option Compare Database
## Nama Form : fIMEL
+
  Option Explicit
## Gambar1
+
  Dim rsz As DAO.Recordset
# Menuliskan Kode Program
+
  Dim SQLz As String  
## 3.1. Deklarasi Variabel
+
'''  3.2. Form Event OnLoad'''
Option Compare Database
+
  Private Sub Form_Load()
Option Explicit
+
  SQLz = "select * from timel;"
Dim rsz As DAO.Recordset
+
  Set rsz = CurrentDb.OpenRecordset(SQLz)
Dim SQLz As String  
+
  End Sub
##3.2. Form Event OnLoad
+
'''  3.3. Form Event OnTimer'''
Private Sub Form_Load()
+
  Private Sub Form_Timer()
SQLz = "select * from timel;"
+
  If IsInternetConnected() = True Then
Set rsz = CurrentDb.OpenRecordset(SQLz)
+
  Application.Echo False
End Sub
+
  Me!Label1.Caption = Format(Now(), "HH:NN:SS")
##3.3. Form Event OnTimer
+
  Application.Echo True
Private Sub Form_Timer()
+
  If UCase(Me!Label1.Caption) = rsz!JamKirim1 Then Call Command_Send_Click
If IsInternetConnected() = True Then
+
  If UCase(Me!Label1.Caption) = rsz!JamKirim2 Then Call Command_Send_Click
Application.Echo False
+
  Else
Me!Label1.Caption = Format(Now(), "HH:NN:SS")
+
    Application.Echo False
Application.Echo True
+
    Me!Label1.Caption = Format(Now(), _
If UCase(Me!Label1.Caption) = rsz!JamKirim1 Then Call Command_Send_Click
+
  "HH:NN:SS") & " No/Limited Connection"
If UCase(Me!Label1.Caption) = rsz!JamKirim2 Then Call Command_Send_Click
+
  Application.Echo True
Else
+
  End If
Application.Echo False
+
  End Sub
Me!Label1.Caption = Format(Now(), _
+
'''  3.4. Command_Send OnClick'''
"HH:NN:SS") & " No/Limited Connection"
+
  Private Sub Command_Send_Click()
Application.Echo True
+
  DoCmd.TransferSpreadsheet acExport, acSpreadsheet_
End If
+
  TypeExcel12Xml , "infolab", "C:/infolab/dataexcell.xlsx", True, "", False
End Sub
+
  If IsInternetConnected() = True Then
##3.4. Command_Send OnClick
+
  Call SendMail
Private Sub Command_Send_Click()
+
  End If
DoCmd.TransferSpreadsheet acExport, acSpreadsheet_
+
  End Sub
TypeExcel12Xml , "infolab", "C:/infolab/dataexcell.xlsx", True, "", False
 
If IsInternetConnected() = True Then
 
Call SendMail
 
End If
 
End Sub
 
  
 
==Menyisipkan Modul==
 
==Menyisipkan Modul==
#Nama Modul mImel
+
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 86: Baris 93:
 
         End If
 
         End If
 
     End If
 
     End If
End Function
+
  End Function
Public Sub SendMail()
+
  'Fungsi Kirim Email
Dim iCfg As CDO.Configuration
+
  Public Sub SendMail()
Dim iMsg As CDO.Message
+
  Dim iCfg As CDO.Configuration
Set iCfg = New CDO.Configuration
+
  Dim iMsg As CDO.Message
Set iMsg = New CDO.Message
+
  Set iCfg = New CDO.Configuration
Dim xrs As DAO.Recordset
+
  Set iMsg = New CDO.Message
Dim xSQL As String
+
  Dim xrs As DAO.Recordset
xSQL = "select * from timel;"
+
  Dim xSQL As String
Set xrs = CurrentDb.OpenRecordset(xSQL)
+
  xSQL = "select * from timel;"
With iCfg.Fields
+
  Set xrs = CurrentDb.OpenRecordset(xSQL)
 +
  With iCfg.Fields
 
   .Item(cdoSendUsingMethod) = cdoSendUsingPort
 
   .Item(cdoSendUsingMethod) = cdoSendUsingPort
 
   .Item(cdoSMTPServerPort) = 465
 
   .Item(cdoSMTPServerPort) = 465
Baris 106: 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 114: 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
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
 

Revisi terkini pada 19 Agustus 2015 11.39

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

Design Form -

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