Jumat, 28 Juni 2013

Membuat Login Form

Assalamu'alaikum...

Hai semua, kali ini kita akan bahas mengenai membuat form login pada ms access. pastinya sediakan table user, di sini dengan contoh tbl_user.

buat sebuah form dengan 2 text box yang namanya t_user dan t_password dan 1 command button cmdlogin.
buatlah sebuah modul dengan isi seperti dibawah :

Sub Login()
on error resume next
dim db as dao.database
dim dbrlogin as recordset

set db = currentdb()
set dbrlogin = db.opendatabase("Select * from tbl_login WHERE [userid]='" form_frm_login.t_user & "'")

if dbrlogin![tpassword] <> form_frm_login.t_password then
msgbox "Password Salah", vbcritical, "My Database"
form_frm_login.t_password.setfocus
else
docmd.openform "frm_main_menu", acnormal
docmd.close acform, "frm_login", acsaveyes
end if
end sub

selesai koding di atas, pada form login, masukin command di cmdlogin on click.

Sub cmdlogin_Click()
if t_user <> "" then
if t_password <> "" then
else
msgbox "Masukkan password", vbcritical, "My Database"
t_password.setfocus
end if
else
msgbox "Masukkan userid anda", vbcritical, "My Database"
t_user.setfocus
end if
end sub

Selamat mencoba......

Sabtu, 25 Mei 2013

Menetukan target folder export data

Selanjutnya, di bab ini kita akan membahas bagaimana menentukan target folder penyimapanan export data access.

Sub command1_click()
On error resune next
Dim sfol as filedialog
Dim strfol as string

Set sfol = application.filedialog
Sfol.allowmultiselect = false
Sfol.show
Strfol = sfol.selecteditem(1)
If sfol = "" then
Else
Docmd transferspreadsheet .... Script ada di pembahasan sebelumnya
End if
End sub

Membuat datasheet subform auto size

Para pecinta programmer yang baca blog ini, kita akan membahas tentang bagaimana membuat subform data sheet auto size, sehingga pada saat form di kecilka  maka isi form juga akan mengecil sesuai dengan ukuran form.
Silahkan baca atau copas script nya...

Sub form_resize()
On error resume next
Subform1.width = me.windowwidth - (subform1.left + 300)
Subform1.height = me.windowheight - (subforn1.top + 1500) ' sisakan untuk button dibawahnya
Command1.left = subform1.left + (subforn1.width - command1.width)' supaya command button berada di sisi kana form

End sub

Selamat mencoba dan mengkreasikan lagi

Jumat, 24 Mei 2013

Export table atau query data menggunakan transfer spread sheet

Para programmer yang handal2 sekalian, di sini saya akan kembali posting bagaimana caranya export table atau query data mengguakan perintah transfer spreadsheet yang sudah ada di Microsoft access database.

di sini akan dilengkapi dengan scripting runtime, tujuannya untuk menentukan target penyimpanan file export dengan membuat folder baru.

Sub Export_DataA()
On Error Resume Next
Dim fold
Dim filepath As String
Set fold = CreateObject("Scripting.FileSystemObject")
fold.createfolder "C:\My Database"
fold.createfolder "C:\My Database\My Export Data"
filepath = "C:\My Database\My Export Data\"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Table_Roster" & Format(Date, "mmmm yyyy"), filepath & "my data.xls", 1

End Sub
Ok, maka data akan tersimpan di C:\My Database\My Export Data\My Data.xls

Salam...

Kamis, 23 Mei 2013

Membuat Query Dengan Script

Ok, di bab ini kita akan bahas bagai mana membuat query dengan script dan memasukkan formula ke setiaf fields nya.
ini hanya query sederhana, selanjutnya kreasikan aja sendiri yak....

dan jika ada yang kurang di mengerti silahkan comment dan pasti akan di respon secepatnya...

Sub CreateQueryA()
On Error Resume Next
Dim db As Database
Dim qrydef As QueryDef
Dim mysql As String
Dim Skol As Long
Dim mulai As Long
Dim selesai As Long
Dim aformula1 As String
mulai = Format(Date, 0)
selesai = Format(Month(Date) & "/1/" & Year(Date) + 1, 0)
For Skol = mulai To selesai
If Format(Skol, "d") = 1 Then
aformula1 = aformula1 & ", IIF(Format([tglcuti],0) = " & Skol & ",0,1) As [" & Format(Skol, "mmm-yy") & "]"
End If
Next Skol
mysql = "Select [nama], [jabatan], [departement], [level], [tglmasuk], [tglcuti]" & aformula1 & " from [Table_Roster" & Format(Date, "mmmm yyyy") & "]"
Set db = CurrentDb()
db.QueryDefs.Delete "Query1"
Set qrydef = db.CreateQueryDef("Query1", mysql)
Debug.Print mysql
End Sub
Salam...
Form Input 1

Membuat form input untuk mengupdate data ke database :

Option Compare Database
Private Sub Command12_Click()
DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
End Sub
Private Sub Command13_Click()
DoCmd.GoToRecord acDataForm, Me.Name, acNext
End Sub
Private Sub Command14_Click()
DoCmd.GoToRecord acDataForm, Me.Name, acPrevious
End Sub
Private Sub Command15_Click()
DoCmd.RunCommand acCmdDeleteRecord
End Sub

'Connection di mulai saat form di load
Private Sub Form_Load()
On Error Resume Next
Dim db As Database
Dim dbr As Recordset
Set db = CurrentDb
Set dbr = db.OpenRecordset("Select * from [Table_Roster" & Format(Date, "mmmm yyyy") & "]")
Set Me.Recordset = dbr
tnama.ControlSource = "nama"
tjabatan.ControlSource = "jabatan"
tdepartement.ControlSource = "departement"
tlevel.ControlSource = "level"
ttglmasuk.ControlSource = "tglmasuk"
ttglcuti.ControlSource = "tglcuti"
End Sub
Private Sub ttglmasuk_AfterUpdate()
ttglcuti = ttglmasuk + 70
End Sub

Membuat duplikat tabel (temporary tabel) dengan cepat

Sub CreateTableDuplicateA()
On Error Resume Next
Dim db As Database
Dim dbr As Recordset
Dim tbldef As TableDef
Dim sKolom As Long
Set db = CurrentDb()
Set dbr = db.OpenRecordset("Select * from [Table_Roster" & Format(Date, "mmmm yyyy") & "]")
Set tbldef = db.CreateTableDef("Temp Table")
For sKolom = 0 To dbr.Fields.Count
With tbldef
.Fields.Append .CreateField(dbr.Fields(sKolom).Name, dbr.Fields(sKolom).Type)
End With
Next sKolom
db.TableDefs.Delete "Temp Table"
db.TableDefs.Append tbldef
End Sub