Tecnologia, programação e muito Visual FoxPro.

quarta-feira, 19 de janeiro de 2011

Re: ]] XL-mania [[ Merubah tanggal pada macro

 

Misal, disediakan cell A1 untuk tanggal awal, dan cell A2 untuk tanggal akhir yang keduanya bertipe datetime.

tambahkan sebelum With
dim sDAw as string, sDAk as string
dim sSQL as string

sdaw=format$(range("a1").value,"YYYY-MM-DD")
sdak=format$(range("a2").value,"YYYY-MM-DD")

'jika format number A1 dan A2 adalah YYYY-MM-DD
'sdaw=range("a1").text
'sdak=range("a2").text

sSQL="SELECT dt1.LOCID, dt1.STATUS, dt1.INVOICE_DATE, dt1.INVOICE_NO, dt1.SERVICE_ORDER, dt1.CUSTOMER_TYPE, " & _
"dt1.REPAIR_TYPE, dt1.CUSTOMER_CODE, dt1.LABOR, dt1.PART, dt1.OIL, dt1.MATERIAL, dt1.SUBLET, dt1.DISCOUNT, " & _
"dt1.TURN_OVER, dt1.TAX, dt1.METERAI, dt1.TOTAL, dt1.DIFFERENT, dt1.POLICE_NO, dt1.CUSTOMER, dt1.ADDRESS, dt1.CITY, " & _
"dt1.TAX_NO, dt1.TAX_DATE, dt1.TRANS_DATE, dt1.NPWP, dt1.RATE, dt1.MODEL " & _
"FROM MIGRASI.dbo.SALES as dt1 WHERE " & _
"dt1.INVOICE_DATE between {ts '" & sdaw & "'} And {ts '" & sdak & "'}"

'jika yang akan ditampilkan adalah seluruh fields dari tabel tersebut pada from,
'ganti yang warna biru menjadi   "Select dt1.* "

'jika odbc tidak support klausa between,
'ganti yang di-bold menjadi
'      "dt1.INVOICE_DATE>= {ts '" & sdaw & "'} And dt1.INVOICE_DATE<= {ts '" & sdak & "'}"

'kemudian bagian .commandtext = blabla sampai :00'})" diganti menjadi
.commandtext = ssql

Jika isi cell A1 dan A2 bukan bertipe datetime, maka akan terjadi error.
Pasang fitur data validation dengan batasan allow date, set tanggal min dan max yang boleh diisikan ke cell A1 dan A2. Kemudian, lebih baik cell A1 dan A2 di format number :
YYYY-MM-DD HH:mm:ss

setidaknya cukup dengan : YYYY-MM-DD

Regards.
Kid.

On Tue, Jan 18, 2011 at 12:01 PM, abduh <abduh.2005@yahoo.co.id> wrote:
 

Dear pakar excel,
Kami punya record macro excel seperti ini;
Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+m
'

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"ODBC;DSN=Report Bulanan;UID=cms;;APP=2007 Microsoft Office system;WSID=URIP;DATABASE=MIGRASI" _
, Destination:=Range("$A$1")).QueryTable
.CommandText = Array( _
"SELECT SALES.LOCID, SALES.STATUS, SALES.INVOICE_DATE, SALES.INVOICE_NO, SALES.SERVICE_ORDER, SALES.CUSTOMER_TYPE, SALES.REPAIR_TYPE, SALES.CUSTOMER_CODE, SALES.LABOR, SALES.PART, SALES.OIL, SALES.MATE" _
, _
"RIAL, SALES.SUBLET, SALES.DISCOUNT, SALES.TURN_OVER, SALES.TAX, SALES.METERAI, SALES.TOTAL, SALES.DIFFERENT, SALES.POLICE_NO, SALES.CUSTOMER, SALES.ADDRESS, SALES.CITY, SALES.TAX_NO, SALES.TAX_DATE, S" _
, _
"ALES.TRANS_DATE, SALES.NPWP, SALES.RATE, SALES.MODEL" & Chr(13) & "" & Chr(10) & "FROM MIGRASI.dbo.SALES SALES" & Chr(13) & "" & Chr(10) & _
"WHERE (SALES.INVOICE_DATE>={ts '2010-07-01 00:00:00'} And SALES.INVOICE_DATE<={ts '2010-07-10 00:00:00'})" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_Query_from_Report_Bulanan_1"
.Refresh BackgroundQuery:=False
End With
End Sub

Record macro diatas dipergunakan setiap kali kami melakukan penarikan data dari server kami, kesulitannya adalah user selalu melakukan penggantian tanggal pada record macro diatas
("WHERE (SALES.INVOICE_DATE>={ts '2010-07-01 00:00:00'} And SALES.INVOICE_DATE<={ts '2010-07-10 00:00:00'})")
setiap saat sesuai range data yg dibutuhkan, apakah ada jalan pembuatan semacam sortcut agar user tidak perlu membuka visualbasic nya dan tanggal bisa diubah,
Terima kasih atas bantuannya


__._,_.___
Recent Activity:
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| "if you are the most valuable assets, you will show up on the     |
| balance sheet..." - oNo Wiqe                                      |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf          |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message,  melecehkan,  tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan  winzip  jika  perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke  |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/           |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau...  |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html           |
+-------------------------------------------------------------------+
| Message lama ada di :                                             |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id]  |
| http://www.mail-archive.com/xl-mania@yahoogroups.com              |
+-------------------------------------------------------------------+
MARKETPLACE

Get great advice about dogs and cats. Visit the Dog & Cat Answers Center.


Stay on top of your group activity without leaving the page you're on - Get the Yahoo! Toolbar now.

.

__,_._,___

Nenhum comentário:

Arquivo do blog