~工作簡化,不再是難事~

2016-06-06

〔SQL〕UPDATE SELECT 利用SELECT做大量更新

範例:將訂單表身(OD00D1)出貨日,批次更新為訂單表頭(OD00H)出貨日


UPDATE
    OD00D1
SET
    OD00D1. DeliveryDate = OD00H. DeliveryDate,
    OD00D1. ProductDate = DATEADD( Day,-7 ,OD00H. DeliveryDate)
FROM
    OD00D1
    INNER JOIN OD00H
        ON OD00D1 .ODNo = OD00H .ODNo
WHERE

    OD00D1. ODNo = 'OD1606-00002'
Read More

〔SQL〕一次取得資料庫欄位名稱、型態等設定 / Select Table Column Type

範例:列出資料庫內所有資料表及其欄位名稱等相關設定


SELECT 
    a.TABLE_NAME                 as 表格名稱 , 
    b.COLUMN_NAME                as 欄位名稱 , 
    b.DATA_TYPE                  as 資料型別 , 
    b.CHARACTER_MAXIMUM_LENGTH   as 最大長度, 
    b.COLUMN_DEFAULT             as 預設值 , 
    b.IS_NULLABLE                as 允許空值 , 
    ( 
        SELECT 
            value 
        FROM 
            fn_listextendedproperty (NULL, 'schema', 'dbo', 'table',   
                                     a.TABLE_NAME , 'column' , default ) 
        WHERE 
            name='MS_Description'   
            and objtype ='COLUMN'  
            and objname Collate Chinese_Taiwan_Stroke_CI_AS=b .COLUMN_NAME 
    ) as 欄位備註 
FROM 
    INFORMATION_SCHEMA.TABLES   a 
    LEFT JOIN INFORMATION_SCHEMA. COLUMNS b ON ( a.TABLE_NAME =b. TABLE_NAME) 
WHERE 
    TABLE_TYPE='BASE TABLE'  
ORDER BY  

    a.TABLE_NAME , ordinal_position   
Read More

2016-06-04

〔ASP.NET〕Convert sqlDataReader to DataTable / 將DataReader資料轉入DataTable

Dim dt As New DataTable
dt.Load(dr)        




範例:
        Dim Conn As SqlConnection = DBLink .setConn("ConnectionString" )
        Dim strSQL As String = ""
        Dim cmd As SqlCommand = Nothing
        Dim dr As SqlDataReader = Nothing
        Try
           
             strSQL = "SELECT * FROM Table"

            cmd = New SqlCommand(strSQL, Conn)
            dr = cmd.ExecuteReader
            If dr.HasRows Then
                Dim dt As New DataTable
                dt.Load(dr)
                Return dt
            Else
                Return Nothing
            End If
        Catch ex As Exception
            Return Nothing
        Finally
            PublicFunction.iniDispose(cmd, dr, Conn)

        End Try
Read More

2016-05-31

提問單[Excel]:如何讓Excel日期裡,星期六日的欄位底色自動變色?(設定格式化的條件)


要如何讓表中星期六、星期日自動更換底色呢?
我們可以善用「設定格式化的條件」喔!

第一步:[F3儲存格],點選該儲存格再打開「設定格式化的條件」/「新增規則」



第二步:點選「使用公式來決定要格式化哪些儲存格」,並在規則說明中,打上以下判斷式

=AND(F$3<>"",OR(WEEKDAY(F$2,2)=6,WEEKDAY(F$2,2)=7))

  • AND(條件1 , 條件2 , …):裡面所有條件都成立的話,回傳真(True),就是必需全部成立才行~
  • OR(條件1 , 條件2 , … ):裡面只要有任何一個條件成立,回傳真(True),就是只要任一個成立就行~
  • WEEKDAY(日期, 顯示類別):依據日期及顯示類別設定,回傳星期幾。其中,顯示類別填2,代表星期一會回傳1、星期二會回傳2、星期天會回傳7。所以我使用2這個類別比較符合我對星期幾的習慣。

白話文的說法:只要F2日期不是空白,而且F3是星期六或星期日,那就可以依據格式設定自動調整底色

請注意:判斷式中,針對儲存格有設定絕對位置的標記$(目前設定在列數),主要就是該格式若要向上下、向左右套用到其它儲存格內時,判斷的列數不會因此而變動。這是一個非常重要好習慣~~



第三步:點選「格式」,設定當規則成立時,你希望顯示的格式!設定完按確定!

那我就把底色改成淡紅色囉!

第四步:你會發現在「設定格式化的條件規則管理員」下,多了一個規格…而且這個規則,目前僅作用在F3儲存格內而已…


第五步:請把這個規格套用到您表內所有的星期儲存格內…
直接把套用到的內容改成

=$F$3:$AQ$3

這樣就不需要針對每個星期幾的儲存格一個個設定囉!

第六步:按下「確定」,您會發現只要是六、日的儲存格底色就自動改變囉!大功告成~~


這封郵件來自 Evernote。Evernote 是您專屬的工作空間,免費下載 Evernote
Read More

提問單[Excel]:如何讓Excel輸入起始日期後,自動展開整個月份的日期及星期?

我們工作上常運用Excel來製作班表、或月記帳等等…橫向展出一個月份的日期。
對於每個月份要替換時,不但常遇到月尾日期變動(2月有28、29天的問題,或是大小月的問題)…
除了每月一次的手動替換以外,是否有機會能利用函數設定,讓月份自動展開呢?

其實只要能達成要顯示的效果,有很多不同的函數組合~以下僅舉其中的一個例子來說明…

1、如果我們手上有個橫向展開的日期,內容全數手動輸入…能怎麼改善呢?





第一步:[F2欄],修改儲存格格式,用自訂方式,顯示月日即可→畫面簡單化,這個欄位為每張表的起始日,若為當月1日,就輸入7/1即可。

第二步:[G2欄] 將隔天的日期,簡化其顯示格式,單顯示日期即可。同時…讓日期自動+1。並將函數複製到後面日期欄位。

=IF(F2="","",F2+1)

白話文的說法…假如F2是空白,那G2就顯示空白,如果不是空白,那就顯示F2+1天的日期
  • =假加(這個說法,真的結果, 假的結果)…哈哈!若你能以白話文解釋…請相信IF就是這麼回事~~ 



第三步:[F3欄]星期幾的修改方式,同時請將該設定複製到後面所有星期欄位。

以下是學員原本設定的方式,其實這個方式已經是非常優的設定方式了…應該要給自己一個讚唷~~
=RIGHT(TEXT(F2,"[$-404]aaa;@"))

白話文的說法…假如F2的日期是空白,則星期顯示空白,否則將F2之日期,依星期之顯示方式,取回最右邊的第一個字
  • 欄位依 [$-404]aaa;@ 的顯示方式,將會自動將日期顯示為「週一、週二、週三…」這是中文的顯示模式~
  • RIGHT(字串,取右邊幾位)


第四步:[AO欄] 再來我們處理最麻煩的每月終止日期…(所以在測試時,最好用7/25日為起始日…因為7、8月都是大月有31天…),請記得要將這個函數複製到日期最後一天喔(AO~AQ)!

因為這張表的設定,以月底為終止日,請自行將欄數留到含大月31日,我們只要控制如果超出該月的範圍,日期不要顯示即可~~
所以我們在AO欄的日期顯示…原本=IF(AN="","",AN2+1)的函數中,再加入一個月份是否相等的判斷~

=IF(AN2="","",IF(MONTH(AN2)=MONTH(AN2+1),AN2+1,""))

IF之中還可再加入IF的判斷,變成多層(槽化)的判斷方式唷~~
白話文的說法…如果AO欄日期的月份等於前一天AN欄日期的月份,則AO欄就顯示,否則不顯示。



第五步:測試一下囉!將起始日修改成不同的日期,您會發現後續的日期及星期,都會自動調整,而終止日也會停在當月份喔!!
  • 由於我們日期及星期的判斷,都有先確認要參考的欄位是否為空白,是空白就不顯示,不是空白才來判斷,這樣的方式可以避免沒有日期的錯誤計算結果產生…

好吧!很久沒上課了…也感謝這位學員朋友提出的問題讓大家分享囉!










這封郵件來自 Evernote。Evernote 是您專屬的工作空間,免費下載 Evernote
Read More

2016-05-26

〔Excel-VBA〕在儲存格上按2下,直接跳到指定的工作表(Sheet)

我…是懶人…總是要找懶方法。
面對一個excel活頁簿有100張工作表(sheet)時,當需要"經常"切換工作表,總是讓我覺得很麻煩~~

因此我採取建立一張總表來管理~~將Sheet名填在A欄中…
然後寫VBA程式,讓我用滑鼠在儲存格上連按2下,就直接跳到指定的Sheet頁面中…
這樣是不是省事多了??



VBA CODE
請在該"工作表"的程式碼裡貼上以下內容即可

'本段在該工作表內的任何一個儲存格Double Click都會跳進來,所以要判斷行列的範圍喔!範圍內才進行跳轉的動作
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error GoTo Err
    Select Case Target.Column                       'Target.column:取得目前儲存格的欄號(因為我只有A欄Double Click才需要跳轉)
        Case 1
            If Target.Text <> "" Then
                Dim strSheet As String
                strSheet = Range("A" & Selection.Row)
                If strSheet <> "" Then
                    Sheets(strSheet).Activate   '真正執行跳轉工作表的就這一行,其它的都是一些防止錯誤的條件,您可自行省略!
                End If
            End If
            Cancel = True
    End Select
    Exit Sub
Err:
    MsgBox "您選取的資料有誤,找不到對應Sheet!", "Error"
End Sub

這封郵件來自 Evernote。Evernote 是您專屬的工作空間,免費下載 Evernote
Read More

2016-05-24

005洞:設定範本右上方的社交網站網址

課上到這裡,有沒有覺得有些趣味了呢…慢慢的專屬於你自己的部落格…在你的手裡一步步建置起來!

接下來,我們來調整一下畫面右上方的社交網路連結的網址


由於我們套用的是設計好的範本。因此修改都必需從範本」→「編輯HTML」裡手動調整。(開啟路徑圖就請參照  003洞:修改範本中間的標籤分類 )

1. 請直接搜尋 facebook字樣,找到下圖的內容區塊,並將#更改為你要連結的網址


2. 其它的連結網址,就看你的需求與否,比照辦理設定即可喔!

這封郵件來自 Evernote。Evernote 是您專屬的工作空間,免費下載 Evernote
Read More

Popular Posts

Copyright © 2016 Scenic's BOX. 技術提供:Blogger.