Juni 29, 2011

To disable/enable shift-ENTER to enter MS Access Edit Mode

Want to distribute your MS Access Application? But worry the stranger will see inside your program using shift-ENTER. This is the tips.

Notes: Please do backup your program before do this routine!!!

Here we go.

Copy these functions:

Function CheckProperty(strPropName As String)
Dim dbs As Object, prp As Variant

Set dbs = CurrentDb
‘On Error GoTo Change_Err
CheckProperty = dbs.Properties(strPropName)
End Function

Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270

Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True

Change_Bye:
Exit Function

Change_Err:
If Err = conPropNotFoundError Then    ‘ Property not found.
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
‘ Unknown error.
ChangeProperty = False
Resume Change_Bye
End If
End Function

This is the example how to use it:

To check if shift-ENTER disable or enable:

CheckProperty(“allowbypasskey”)

This is how to set enable shift-ENTER:

ChangeProperty “AllowBypassKey”, DB_Boolean, true

This is how to set enable shift-ENTER:

ChangeProperty “AllowBypassKey”, DB_Boolean, false

 

April 19, 2011

Login otomatis di windows

Khususnya bagi anda yang mempunyai aplikasi di server yang ingin selalu hidup saat server dihidupkan pasti tidak nyaman jika server tiba-tiba restart dan aplikasi tidak bisa hidup kembali karena memerlukan login.

Berikut setting registry untuk memungkinkan itu dilakukan secara otomatis:

1. Buka regedit dan pergi ke path HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
2. Tambahkan entry DefaultUserName (string value), atau ubah isinya jika sudah ada dengan login yang anda inginkan.
3. Tambahkan entry DefaultPassword (string value), atau ubah isinya jika sudah ada dengan password yang anda inginkan.
4. Tambahkan entry AutoAdminLogon (string value), atau ubah isinya jika sudah ada. Isikan angka 1 (satu) untuk login otomatis atau angka 0 (nol) jika tidak ingin login otomatis.
5. restart server.
 
Perhatian:
Harap lakukan setting ini dengan bijaksana karena password tidak terenkripsi, jadi memungkinkan orang yang tidak diinginkan melihat.
 
Source:
 
Februari 28, 2011

Tools menyiapkan uang pecahan untuk perhitungan gaji/salary

Saat akhir bulan adalah saat yang sibuk untuk owner/HRD karena harus menghitung gaji, menyiapkan yang dan memecahkannya untuk dimasukkan ke dalam amplop gaji.

Berikut sebuah tools excel sederhana yang dapat digunakan untuk menyiapkan jumlah uang pecahan agar dapat disiapkan terlebih dahulu, sehingga pada saat memasukkan uang ke amplop tidak selisih.

Pastikan anda mengisi di daerah hijau saja, sehingga formulanya tidak berubah.

Klik salary-breakdown-xlsx dalam format xlsx.

Klik salary-breakdown-xls dalam format xls.


Februari 9, 2011

Remote Connection Troubleshooting in MS SQL Server (multi instance)

Dear all,

If you’d like to access your MS SQL Server in any version remotely, these tips to make sure the connection working:

1. make sure your remote connection is allowed.
In MS SQL Server 2000, especially in MSDE, there is one parameter you have to set to make sure network connection enabled (default is disable). Please read readme.txt in MSDE folder. In MS SQL Server you have to access surface are configuration. In MS SQL Server 2008, the surface area is moved to server properties, section Connection.

2. make sure firewall is open.
You can try to see if your firewall blocking by download this toolkit: portqry. You can download at this link: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=89811747-c74b-4638-a2d5-ac828bdc6983&displaylang=en
After download you try check your server port 1434 UDP. It should be listening. In Server response you can see all ports that should be used by SQL Browser, especially multi instance connection. It is not only port 1433, but SQL Browser will set your port different from other servers. Then after got the port, you can check if the ports open or not.

3. Make sure all service pack is update.
Some bugs might be happened especially you use MS SQL Server 2000 below 3A and multi instance SQL Server. So be updated.

4. 1434 udp is filtered. If you find that 1434 udp is filtered it means that you need to check the router or ask network administrator to release it. If cannot, you can go to the server and check manually the port that use for that instance. Do alias to define instance name with manual port definition. Make sure your alias name include the instance name like server\instance

(got from many sources)

Januari 4, 2011

Program Access yang sudah anda buat corrupted? Berikut sedikit solusinya

Yang menyebalkan dari program MS Access adalah karena sering rusak (corrupted). Penyebabnya banyak dan sebagian besar tidak bisa direcover. Berikut trik yang bisa dilakukan:

1. Jika error di data/form/report

Jenis error ini terjadi saat anda mengakses data. Biasanya terjadi corrupt di sebagian data. Cara yang paling mudah adalah dengan mengexport MS Access anda ke file baru.

Jika berhubungan data, lakukan pemindahan bertahap. Lokalisir record yang error, biasanya hanya terjadi pada beberapa record.

2. Jika error di module

Untuk error di module, ciri khasnya adalah saat masuk ke dalam module (Ctrl+G), akan terjadi error yang menyebabkan program MS Access tertutup. Caranya jalankan MS Access dengan command line sebagai berikut:

msaccess “nama_database_anda.mdb” /decompile

Setelah itu, coba masuk lagi dan masuk ke module. Semoga berhasil.

Source:
http://allenbrowne.com/ser-47.html
http://www.granite.ab.ca/access/decompile.htm

Januari 4, 2011

Cara menverifikasi password dengan Active Directory user

Jika anda menggunakan Windows Active Directory dan ingin user tersebut masuk ke dalam aplikasi anda menggunakan user dan password tersebut  dan anda dapat menverifikasi password tersebut. Berikut adalah fungsi untuk melakukan verifikasi tersebut:

    Function checkAD(ByVal path As String, ByVal userid As String, ByVal pwd As String)
        Dim strAccountid As String = userid
        Dim strPassword As String = pwd
        ‘Dim path As String = Me.TextBox3.Text
        Dim adsEntry As New DirectoryEntry(path, strAccountid, strPassword)
        Dim adsSearcher As New DirectorySearcher(adsEntry)
        ‘adsSearcher.Filter = “(&(objectClass=user)(objectCategory=person))”;
        adsSearcher.Filter = “(sAMAccountName=” & strAccountid & “)”

        Dim bSucceeded = False
        Dim strError As String
        Try
            Dim adsSearchResult As SearchResult = adsSearcher.FindOne()
            bSucceeded = True
            Dim strAuthenticatedBy = “Active Directory”
            strError = “”   ‘”User has been authenticated by Active Directory.”
            adsEntry.Close()
            ‘MsgBox(“login success.”)
        Catch ex As Exception
            ‘ Failed to authenticate. Most likely it is caused by unknown user   // id or bad strPassword.  
            strError = ex.Message
            ‘MsgBox(strError)
            adsEntry.Close()
        End Try
        checkAD = strError
    End Function

Contoh:
Isilah parameter path dengan “LDAP://dc=domain, dc=local”  (LDAP harus huruf capital),
user bisa menggunakan domain ataupun tanpa domain

Hasil yang didapat:
Jika sukses, maka hasil adalah blank, sedangkan kalo error menghasilkan pesan error.

Source: http://stackoverflow.com/questions/290548/c-validate-a-username-and-password-against-active-directory (modified)

Januari 4, 2011

Cara men-disable notifikasi Access Security di MS Access 2007/10

Jika anda masuk ke MS Access, biasanya ada message box yang berkata “A potential security concern has identified, this location may be unsafe.” Untuk menghilangkan pesan peringatan tersebut ada dua cara:

1. Melalui Access Options

klik di BIG office button (office 2007) atau File button merah (office 2010) di kiri atas
Pilih Access Options
Pilih Trust Center
Pilih Trust Center Settings
Pilih Trusted Locations dan tambahkan lokasi baru di trusted location

atau

Pilih Macro Settings dan enabled all macro settings

2. Melalui registry:

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Access\Security]
“VBAWarnings”=dword:00000001

Notes: Semua cara di atas dapat membuka potential problem yang ditimbulkan oleh virus dan sejenisnya.

Source: http://bytes.com/topic/access/answers/764640-disable-access-security-notice

Desember 7, 2010

Bermain dengan uniqueidentifier di MS Access

Meskipun MS Access sudah mengadopsi uniqueidentifier sejak beberapa versi sebelumnya, namun secara teknikal masih banyak ketidaknyamanan saat menggunakan field dengan jenis ini. Berikut tips untuk membuat coding anda tidak menjumpai banyak masalah:

1. Agar field ini dapat dibaca, pastikan buat textbox dengan nama yang sama dengan field ini. Kalau tidak, maka hasilnya berupa ????.
2. Lakukan konversi jika diperlukan menggunakan stringfromGUID().
3. Ini pun kadang hasilnya bentuknya tidak serupa, kadang berformat {guid {8DC0495F-5C27-4166-8B91-467ACE25F2E7}}, kadang berupa {8DC0495F-5C27-4166-8B91-467ACE25F2E7}. Jangan sekedar membuat enkapsul tersebut dengan mid, tapi gunakan replace: replace(replace(replace(guid, “{guid “, “”), “{“, “”), “}”)
4. Jika ingin membuat function mirip newid(), silahkan akses link ini: https://samuelsurya.wordpress.com/2010/11/16/trick-and-tips-membuat-function-mirip-newid-di-ms-access/

Semoga bermanfaat.

Desember 2, 2010

short code untuk mengirim email dari SQL Server 2008 Express

Buat sendiri code untuk kirim email dari SQL Server 2008 Express. Artikel ini aku ambil dari internet dan saya sudah mencoba dan berjalan dengan baik. Berikut caranya:

1. Buat file sendemail.vb dan masukkan code berikut:

Imports System.Net
Imports System.Net.Mail
Public Class SQLCLREmail
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub SendEmail(ByVal recipients As String _
, ByVal CC as String, ByVal BCC as String _
, ByVal subject As String _
, ByVal from As String _
, ByVal body As String _
, ByVal strAttachments as String _
, ByVal strSMTPServer as String _
, ByVal strSMTPServerPort as String _
, ByVal strSMTPServerUser as String _
, ByVal strSMTPServerPwd as String)

Using MailMsg As New MailMessage()

MailMsg.From = New MailAddress(from)
MailMsg.Subject = subject
MailMsg.Body = body
MailMsg.IsBodyHtml = True

If Not recipients.Equals(String.Empty) Then
Dim strRecip As String
Dim strTo() As String = recipients.Split(“;”)
For Each strRecip In strTo
MailMsg.To.Add(New MailAddress(strRecip))
Next
End If

If Not CC.Equals(String.Empty) Then
Dim strCCRecip As String
Dim strCCTo() As String = CC.Split(“;”)
For Each strCCRecip In strCCTo
MailMsg.CC.Add(New MailAddress(strCCRecip))
Next
End If

If Not BCC.Equals(String.Empty) Then
Dim strBCCRecip As String
Dim strBCCTo() As String = BCC.Split(“;”)
For Each strBCCRecip In strBCCTo
MailMsg.BCC.Add(New MailAddress(strBCCRecip))
Next
End If

If Not strAttachments.Equals(String.Empty) Then
Dim strFile As String
Dim strAttach() As String = strAttachments.Split(“;”)
For Each strFile In strAttach
MailMsg.Attachments.Add(New Net.Mail.Attachment(strFile.Trim()))
Next
End If

If Not strSMTPServer.Equals(String.Empty) Then
Dim smtp As New System.Net.Mail.SmtpClient
With smtp
If Not strSMTPServerUser.Equals(String.Empty) Then
.UseDefaultCredentials = False
.Credentials = New System.Net.NetworkCredential(strSMTPServerUser, strSMTPServerPwd)
End If
.Host = strSMTPServer
.Port = strSMTPServerPort
.Send(MailMsg)
End With
Else
Dim smtp As New System.Net.Mail.SmtpClient
With smtp
.Host = “localhost”
.Port = 25
.Send(MailMsg)
End With
End If

End Using
End Sub
End Class

2. Compile file tersebut dengan menggunakan command line sebagai berikut. Ubah lokasi file vbc dan vb jika diperlukan:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc /target:library C:\SQL_CLR\SendEmail.vb

3. Buka SQL Server Enterprise Studio, jalankan script ini. Ubah lokasi file dan database yang diinginkan:

exec sp_configure ‘show advanced options’,1
reconfigure
GO

exec sp_configure ‘clr enabled’,1
reconfigure
go

alter database <YourDatabase> set trustworthy on
go

–hanya jika pake login selain sa

ALTER AUTHORIZATION ON DATABASE::<YourDatabase> TO sa
go

use <YourDatabase>
go

create assembly SendEmail from ‘C:\SQL_CLR\SendEmail.dll’
with permission_set = external_access
GO

4. Setelah terpasang, buat stored procedure berikut:

CREATE PROCEDURE [dbo].[p_SendEMail]
@recipients [nvarchar](4000),
@CC [nvarchar](4000),
@BCC [nvarchar](4000),
@subject [nvarchar](4000),
@from [nvarchar](4000),
@body [nvarchar](4000),
@strAttachments [nvarchar](4000),
@strSMTPServer [nvarchar](300),
@strSMTPServerPort [nvarchar](10),
@strSMTPServerUser [nvarchar](300),
@strSMTPServerPwd [nvarchar](300)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SendEmail].[SQLCLREmail].[SendEmail]

5. Setelah itu coba test. Berikut contohnya:

EXEC p_SendEMail @recipients    = ‘user1@company.com’
, @CC    = ‘user2@company.com’
, @BCC    = ‘user3@company.com’
, @subject   = ‘RE: Email from SQL Express’
, @from    = ‘Test@SQLExpress.com’
, @body    = ‘This is a test email from SQL Server’
, @strAttachments  = ‘C:\test1.txt;C:\test2.txt’
, @strSMTPServer  = ‘my.smtpserver.com’
, @strSMTPServerPort  = ’25’
, @strSMTPServerUser  = ”
, @strSMTPServerPwd  = ”

source: http://www.sqlservercentral.com/articles/SQL+Express+2008/71341/

November 25, 2010

Setup CDONTS Mail di SQL Server (2008)

Untuk mengirim email melalui stored procedure ada beberapa tools yang bisa dipakai. Salah satunya adalah melalui SMTP build-in dari Windows Server. Berikut langkahnya:

1. Install SMTP Service dari Add-Remove Programs. Setelah terinstall, pergi ke IIS Manager, lalu pilih Default SMTP Virtual Server, klik kanan properties. Pilih Delivery, Advanced. Ubah smart host dengan SMTP Server anda.

2. Aktifkan Ole Automation dengan script ini:

exec sp_configure ‘show advanced options’, 1; 
GO 
RECONFIGURE; 
GO 
exec sp_configure ‘Ole Automation Procedures’, 1; 
GO 
RECONFIGURE; 

3. Buat stored procedure ini:

CREATE PROCEDURE [dbo].[sp_send_cdontsmail]
@From varchar(100),
@To varchar(100),
@Subject varchar(100),
@Body varchar(4000),
@CC varchar(100) = null,
@BCC varchar(100) = null
AS
 Declare @MailID int
 Declare @hr int
 EXEC @hr = sp_OACreate ‘CDONTS.NewMail’, @MailID OUT
 EXEC @hr = sp_OASetProperty @MailID, ‘From’,@From
 EXEC @hr = sp_OASetProperty @MailID, ‘Body’, @Body
 EXEC @hr = sp_OASetProperty @MailID, ‘BCC’,@BCC
 EXEC @hr = sp_OASetProperty @MailID, ‘CC’, @CC
 EXEC @hr = sp_OASetProperty @MailID, ‘Subject’, @Subject
 EXEC @hr = sp_OASetProperty @MailID, ‘To’, @To
 EXEC @hr = sp_OAMethod @MailID, ‘Send’, NULL
 EXEC @hr = sp_OADestroy @MailID

4. Test sp ini dengan:

exec sp_send_cdontsmail ‘someone@example.com’,’someone2@example.com’,’Test of CDONTS’,’It works’

 source:
http://sqlsolace.blogspot.com/2009/01/enabling-ole-automation-via-tsql.html
http://support.microsoft.com/kb/312839