WindowsUpdate 一直重新開機, 更新、又重開機(For win7)


方法一 . 
有關於 WindowsUpdate 檢查更新卡住、下載更新卡住、安裝更新卡住、不管怎樣的卡住沒進度 0%
更新好久的問題都可以使用這個方式來解決看看!!! 

解決辦法:
首先找到 C:\Windows 的「SoftwareDistribution 」將裏頭的資料夾全刪除


重開機後, 狀況依然如下圖: 正在準備設定Windows [Win7] 更新後無法開機

方法二 .:啟動修復
接下來就要手動來修復硬碟的開機磁區,請一樣在開機時按 [F8] 叫出上述的開機選單,然後選第一個[修復您的電腦]
接下來的「鍵盤輸入法」直接[下一步]
[Win7] 更新後無法開機
然後選取一個有管理員權限的使用者並輸入密碼
[Win7] 更新後無法開機
如果無法進到這個「系統復原選項」的畫面,那你的電腦開機功能應該已經毀了,請改用下面的光碟開機法來執行修復,還是有可能起死回生的!
請選擇第一項[啟動修復]開始修復
[Win7] 更新後無法開機
這一次因為不是啟動磁區的問題,所以沒有找到問題,如果你的啟動磁區有問題或許這樣子就可以開機了
[Win7] 更新後無法開機

方法二 : 系統還原

再不行就要將系統還原到出問題之前的時間點,但是如果你已經把系統還原關閉了,這這一招就不靈了
請在上述的「系統復原選項」選取第二項[系統還原]
然後按[一下步]
[Win7] 更新後無法開機
再選擇要還原的時間點,如果太少還可以勾選「顯示更多還原點」,再按[一下步]
[Win7] 更新後無法開機
在確認的畫面按[完成]開始還原
[Win7] 更新後無法開機
最後一次後悔的機會,確定要還原的話按下[是]
[Win7] 更新後無法開機
還原成功按[重新啟動]重開機
[Win7] 更新後無法開機
終於成功進入桌面的,這是告訴你已經還原到哪一個時間點
[Win7] 更新後無法開機

共用資料夾 權限





進入內容, 先告知來源: 檔案(資料夾)權限簡介之初級篇

要先弄清楚 <共用> 與 <安全性> 的不同。



圖檔本機登入只考慮 <安全性權限> ;無關 <共用權限>。

假設你在某個資料夾要讓 [本機的其他使用者] 
只讓他能:
  1.可以看其中的檔案(讀取)
  2.新增檔案或子資料夾(寫入)
  3.更改已存在的檔案內容(寫入)
  4.不可以刪除檔案或子資料夾

還有一個很重要的觀念要釐清:
以同樣檔名的檔案來覆蓋原始檔案
在電腦是認為更改檔案內容
只需最少有到 [寫入] 的權限即可。

然而,把原始檔案更改檔名;而不改變其內容
在電腦卻認為是刪除原檔案後新增一個檔案!
這必須至少有 [修改] 的權限才可以實施的!!


----------------------------------------------------------------------------------------------------------------------

圖檔圖檔
遠端存取(例如:網路芳鄰)要看二個地方,
先看 <共用權限>,
再和 <安全性權限>
做交集(也就是取其較嚴格的)。

假設你在某個資料夾要讓 [網路芳鄰的使用者] 
只讓他們能:
1.可以看其中的檔案(讀取)
2.新增檔案或子資料夾(寫入)
3.更改已存在的檔案內容(寫入)
4.不可以刪除檔案或子資料夾

因為遠端存取(例如:網路芳鄰)是先看 <共用權限>,
再和 <安全性權限>做交集(也就是取其較嚴格的)才是有效權限。
以這個例子我們可以如此設定:




安全性權限部份:
你給予該USER只有 <寫入> 的權限


如此設定之後,該USER在共用權限部份擁有 <變更> 的權限,
所以他能在該共享資料夾內新增及刪除檔案或子資料夾。

然而,他在安全性權限部份只擁有至 <寫入> 的權限,
所以他能新增檔案或子資料夾;卻不能刪除檔案或子資料夾。

因此,雖然他在共用權限部份擁有 <變更> 的權限,
但是在安全性權限部份卻沒有 <修改> 的權限。





我用表格來做整理;可能會比文字敘述更容易明白。
如下表:

-----------------------------共用權限<變更>-------安全性權限<寫入>
新增檔案或子資料夾-----------可------------------------可
改變檔案內容-------------------可------------------------可
刪除檔案或子資料夾-----------可----------------------不可

兩個權限作交集運算之後,取其較嚴格的限制之後得到這樣的結果:

可新增檔案或子資料夾;
可改變檔案內容;
不可刪除檔案或子資料夾 !


----------------------------------------------------------------------------------------------------------------------
我知道你可能對權限一些名詞仍然有一些模糊,沒關係!我來做個整理:

完全控制-----------→  允許進行任何作業
修改-----------------→ 修改、刪除檔案(資料夾)內容,是僅次於完全控制的權限
讀取及執行---------→ 讀取檔案外也可以執行其中的可執行檔
資料夾清單內容--→  列出資料夾內的檔案名稱(這個權限為資料夾專用)
讀取----------------→  讀取檔案
寫入----------------→  可以修改檔案(資料夾)內容;但是不能刪除檔案(資料夾)


而資料夾『共用權限』中的「變更」,就是大約等於「修改」。

這其中就以 [修改] 最容易讓人混淆,
初學者很容易的依字面上想當然爾的認定:
我有一份檔案資料要讓同仁可以 {編輯更改} 其中的內容,所以要給他們有[修改] 的權限!這是相當大的誤解!! 
[修改] 這個權限,
你可以把它想成是 [讀取及執行] 加上 [寫入] 再加上 [刪除] 的組合。
修改包含 ( 讀取/ 執行/ 寫入/ 刪除 )
所以,它除了能{編輯更改}文件內容,也可以刪除整個文件或資料夾!

那你可能會說 [修改] 這裡我給它勾選 [拒絕] 不就得了?
NO! [拒絕] 這個命令不要顧名思義的隨便給它勾選,
在Windows NT系列裡 [拒絕] 的優先權大於 [允許] !
如上例:一旦勾選 [拒絕修改] 則連 [讀取及執行] 和 [寫入] 都一起拒絕了喔!
屆時該檔案是連看也不給人家看;更不要想說去編修或更改檔案了!


Access 如何在程式內使用 SQL語法與VBA

自學了半年一直不懂,執行SQL有很多方法。許多的書也沒有明白的講解。
維基百科內的Access說明;初學者一定要去看啊。

在Access的VBA中執行SQL語句,有三種方法。
  • DoCmd.RunSQL:基於Access的物件方法,使用Microsoft Jet SQL,可以在SQL語句中可以使用VBA函式。需要在呼叫前設定DoCmd.SetWarnings False關閉提示或確認對話方塊。執行時在Access狀態列顯示進度條,可通過Esc鍵中止執行。不能取得SQL語句影響的記錄行數。不能將多個SQL語句的執行放在同一事務中。
  • CurrentDB.Execute:基於DAO物件,使用Microsoft Jet SQL,可以在SQL語句中可以使用VBA函式。能取得SQL語句影響的記錄行數。可以將多個SQL語句的執行放在同一事務中。
  • CurrentProject.Connection.Execute:基於ADO物件模型,連線到不同資料庫(Excel)。對Access使用ISO SQL標準語法並可以使用VBA函式。沒有提示或確認對話方塊的顯示。執行時沒有在Access狀態列顯示進度條,不可以通過Esc鍵中止執行。能取得SQL語句影響的記錄行數。可以將多個SQL語句的執行放在同一事務中。
例如:
Dim strSQL As String
strSQL = "SELECT * INTO [excel 8.0;database=d:\gz.xls].sheet1 FROM tableA WHERE tableA.city = 'gz' " 
 :REM 執行該函數進行SQL查詢 
CurrentProject.Connection.Execute strSQL

以上例子是ADO物件方法連結到Excel , 更多說明請連結 : 使用 ADO 查詢 Excel 試算表


自學了半年一直不懂,如何正確使用語法,在網路上依樣照抄也可以用,如下:

Set m=CurrentDB.OpenRecordset(“Select * From 客 戶”) 

為什麼SQL語法放在這裡面就可以用,很神奇的。更加深我的研究精神,雖然我還是不懂。
現在我懂了;因為這一篇文章片斷,我懂了CurrentDB是DAO的方法,如下:





DAO

DAO物件(Data Access Object)

資料來源 : http://jsl0924.myweb.hinet.net/access/aca4.htm

我們在Access 的表單劃面中,可以使用DAO或ADO物件,來存取其他的資料庫(excel)中的資料。
DAO說明前先了解Jet 是什麼:
  • Access採用 Microsoft Jet 資料庫引擎.
  • Microsoft Jet 資料庫引擎可以存取如 Access、FoxPro、dBase等關聯式資料庫
  • 所有的DAO查詢服務必須在本機上執行,遠端的資料需先傳送到本機才可處理。
  • Microsoft Jet是微軟針對檔案型資料庫所發展的資料庫引擎(Database Engine),它的適用資料來源種類相當多,像是Microsoft AccessMicrosoft ExceldBase等等檔案型資料來源都可以利用Microsoft Jet資料庫引擎就可以使用SQL指令目前的Jet引擎最新版本為4.0,並且未來在x64平台上將不再支援。
    使用Jet 連到Access.Text.Excel


DAO物件模型 For Microsoft Jet Workspaces:Access說明→內容→DAO 3.60

宣告(定義)物件變數

Dim ObjVar As MyClass:宣告一個物件變數,類別為 MyClass,此時物件尚未存在。
Set ObjVar = [ New ] MyClass :以 New ( 可省略 ) 產生一個物件,並用 Set 把他指派給 ObjVar 變數。 

開啟資料庫(OpenDatabase)

Set 參數一 = 數二.OpenDatabase (數三, 數四, 數五, 數六)
  • 參數一:database 資料庫物件變數。
  • 參數二:workspace 工作區名稱。預設是Workspaces ( 0 ),可省略。
  • 參數三:dbname 資料庫名稱,包含完整路徑。
  • 參數四:options True表示 " 獨佔 " ;False表示 " 共享 "。
  • 參數五:read-only True表示 " 唯讀 ";False表示 " 非唯讀 "。
  • 參數六:connect 連結資訊、密碼。
例如:
Dim db As Database
Set db = OpenDatabase ( " mydb.mdb ", False, False ) 
         
指派資料庫物件為目前資料庫的三個方法
  • Set db = DBEngine.Workspaces( 0 ). DataBases( 0 )  
  • Set db = DBEngine( 0 )( 0 )
  • Set db = CurrentDB( ) ( 使用 CurrentDb 函數 )
  • db.Close     '使用 Close 方法,關閉資料庫


建立記錄集(OpenRecordset)

For Database objects:
Set recordset = object.OpenRecordset (source, type, options, lockedits)
For QueryDef, Recordset, and TableDef objects:
Set recordset = object.OpenRecordset (type, options, lockedits)
  • recordset :記錄集物件變數。
  • object :想要建立記錄集的物件,如 Database, QueryDef, Recordset, and TableDef objects。
  • source :可以是資料表、查詢或者SQL陳述式。
  • type :記錄集型態。如 dbOpenTable ... 等,若在 MS Jet Workspace 建立記錄集,可以不指定型態,預設為 dbOpenTable ( 開啟資料表型態記錄集 )。 
  • options :如 dbAppendOnly, dbDenyWrite, dbDenyRead, dbReadOnly ... 等。 
  • lockedits :鎖定編輯。如 dbReadOnly, dbPessimistic, dbOptimistic ... 等
例如:
Dim rs As Recordset , sql As String
Set rs = db.OpenRecordset ( " 員工 " , dbOpenTable )
sql = " SELECT [姓名] FROM 員工 "
Set rs = db.OpenRecordset ( sql , dbOpenDynaset )
Set rs = db.OpenRecordset ( sql , dbOpenSnapshot )
記錄集的型態
語法型態說明
dbOpenTableTable-typeMS Jet Workspaces only 
dbOpenDynasetDynaset-typelinked table or query 預設值 
dbOpenSnapshotSnapshot-type
dbOpenForwardOnlyForward-only-typeODBCDirect Workspaces 預設值 
dbOpenDynamicDynamic-typeODBCDirect Workspaces only 
比較表:
RecordsetMembershipRecords Updatableresult of a query 
Table-typeCan changeCan add, change, delete N/A
Dynaset-typeFixedCan add, change, delete Yes
Snapshot-typeFixedFixedYes
Forward-only-typeFixedFixedYes
Dynamic-typeCan changeCan add, change, delete Yes
存取記錄集的資料
針對目前指標所在的當筆記錄。例如:存取記錄集中目前記錄的 " 姓名 " 欄位資料,以第三種方法最快。
  1. [LName] = rs.Fields("姓名").Value
  2. [LName] = rs("姓名")
  3. [LName] = rs![姓名]

移動記錄集指標

用以改變記錄集物件,目前所在記錄指標的位置。有 " 方法 " 和 " 屬性 " 兩種設定方式。
方法:
  • MoveFirst:第一筆
  • MoveLast:最後一筆
  • MoveNext:下一筆
  • MovePrevious:上一筆
  • Move rows [,start] :移動若干筆,從第幾筆開始
屬性:
  • BOF:Begin Of Flie 
  • EOF:End Of File 
  • RecordCount:記錄筆數
  • PercentPosition:位置百分比
注意:
  1. 若目前記錄指標 ( Current Row ) 已經在第一筆,BOF 屬性為 True,再使用 MovePrevious ,則BOF 屬性仍為 True,但會出現執行時期錯誤 ( run-time error )。
  2. 若目前記錄指標 ( Current Row ) 已經在最後一筆,EOF 屬性為 True,再使用 MoveNext ,則 EOF 屬性仍為 True,但會出現執行時期錯誤 ( run-time error )。

資料處理

更新記錄
  1. Edit method →Modify data →Update method 
  2. Run-time erroe if Update without Edit or AddNew
例如:
rs.Edit
rs("Last Name")=[LName]
rs.Update
新增記錄
  1. AddNew method →Add data →Update method
  2. Changes lost if no Update is executed
例如:
rsCustomers.AddNew
rsCustomers("Customer ID")="FINNF"
rsCustomers("Company Name")="Finnegan's Foods"
rsCustomers.Update
刪除記錄
Delete Method
  1. Removes current record
  2. No warning or prompt occurs
  3. Your code should move off deleted record
例如:
rs.Delete
If rs.EOF Then
  rs.MoveLast
End If

搜尋記錄

Find:
  • For a Dynaset-type or Snapshot-type Recordset Only 
  • 一筆一筆地比對
  • 使用屬性 " Bookmark " 儲存目前指標位置
  • FindFirst, FindLast, FindNext, FindPrevious 
語法:rs.FindFirst criteria ( criteria = any valid Where clause without Where. ) 
例如:
Public Sub DAO_Find()
  ...
  strFind="[職稱]='業務經理'"
  rs.FindFirst strFind
  Do Until rs.NoMatch
    Debug.Print rs("姓名")
    rs.FindNext strFind
  Loop
  ...
End Sub
注意:為了避免混淆,在雙引號中若需再加上雙引號,請使用單引號,加以區別。
Seek:
  • For a Table-Type Recordset Only 
  • 只能搜尋定義過 " 索引 " 的欄位 
  • 採 " 二分法 " 比對 
語法:rs.Seek comparisonkey1, key2... ( comparison:比較運算子 ) 
例如:
Public Sub DAO_Seek()
  Dim ...
  ...
  rs.INDEX="PrimaryKey"
  rs.Seek "=",7
  If Not rs.NoMatch Then
    Debug.Print rs("姓名")
  End If
  ...
End Sub

使用查詢物件

使用選取查詢
  1. Set QueryDef Object to Query ( 定義查詢定義物件 ) 
    • Dim qdf As QueryDef
    • Set qdf=db.QueryDefs("Products On Order")
  2. Set any Parameters ( 設定參數 ) 
    • qdf.Parameters("Beginning Date")=#01/01/94#
  3. Create Recordset ( 建立記錄集 ) 
    • Set rs=qdf.OpenRecordSet(dbOpenDynaset)
使用動作查詢
Execute Method - Executes an action query
  • No recordset created
  • Use DB_FailOnError to return a run-time error if query fails 
使用SQL
  1. SQL Select Statement
    • strSQL = " Selcet * From Employees "
    • Set rs = db.OpenRecordset ( strSQL, dbOpenDynaset )
  2. SQL Update Statement - Useful for batch updates 
    • strSQL = " Update Products Set [ Discount ] = 1 Where [ Discount ] = 0 " 
    • db.Execute strSQL, dbFailOnError
  3. SQL Insert Statememt - May be faster than AddNew
    • strSQL = " Insert Into Employees... "
    • db.Execute strSQL, dbFailOnError

Transactions ( 交易 )

一筆更新,將在兩個資料表產生對應的變動,而且必須同時完成。
  1. Transaction Methods of Workspace Object 
    • BeginTrans - begins a transaction
    • CommitTrans - commits all changes
    • Rollback - cancels all changes since BeginTrans 
  2. Transactions Can Improve Performance 

Lock ( 鎖定 )

以 Access 資料庫的查詢為例:
  1. 建立查詢→修改查詢中的某一筆記錄,並保持編輯狀態,
  2. 再開啟 MS Access →開啟同一個資料庫檔案。( 若以開啟舊檔方式開啟同一個資料庫,將無法產生二個資料庫視窗。)
  3. 開啟同一個查詢物件→修改同一筆記錄,
  4. 先後儲存查詢→測試記錄鎖定狀態,是否允許更新或修改。
查詢設計檢視→屬性→記錄鎖定:
  • 無鎖定:預設值。允許多使用者同時編輯,但儲存時進行鎖定。
  • 所有記錄:只允許一個使用者編輯同一個查詢。
  • 編輯的記錄:允許多使用者同時開啟同一個查詢,但不允許同時編輯同一筆記錄。
記錄鎖定屬性設定:
  • rs.LockEdits = True ( Pessimistic, 悲觀的 ) - Default
Lock from Edit through Update
  • rs.LockEdits = False ( Optimistic, 樂觀的 )
Lock during Update only 

設計具載入資料命令鈕的表單(DAO實作) 

修改同一個物件的多個屬性:
With 物件名稱
      .物件屬性1 = 屬性1
      .物件屬性2 = 屬性2
      ...
End With
將 Recordset 的指標,指定給表單的指標:
Me.Bookmark = rs.Bookmark 
RecordsetClone:
參照表單屬性 Recordsource 指定的 Recordset 物件。 
除了自行設計的表單之外,利用精靈建好表單,再建立按鈕→將程式碼由範例中複製過來→重新設定建立 Recordset 物件。
Private Sub Form_Load () 
  Set res = Me.RecordsetClone
End Sub

修改windows7資料夾瀏覽窗格內容--移除家用群組(Homegroup)、網路(Network)等

初始狀態


步驟1:開啟登錄檔編輯器
  操作:開始→搜尋列輸入regedit→在上方regedit按右鍵→系統管理員身分執行

打開後會跳出下圖


步驟2找到想要移除部分的機碼
   操作:ctrl+f搜尋→填入你要刪除的項目按enter
(好比我要刪除家用群組,我就複製{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}貼上)

各項目(要刪哪個填哪個)
我的最愛:
{323CA680-C24D-4099-B94D-446DD2D7249E}

媒體櫃:
{031E4825-7B94-4dc3-B131-E946B44C8DD5}

家用群組:
{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}

網路:
{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}


效果如下

步驟3點開你搜到的機碼ShellFolder上按右鍵→選使用權限

步驟4:選Administrator→允許完全控制

步驟5選擇Attributes點右鍵選擇 "修改修改數值資料,填入新資料確定完成


各項目新數值(要改哪個填哪個)
我的最愛:
a9400100

媒體櫃:
b090010d

家用群組:
b094010c

網路:
b0940064

步驟6登出或重開機就可以看到結果(我刪了家用群組跟網路)




最後附上原始機碼位置

我的最愛:
HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder

媒體櫃:
HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder

家用群組:
HKEY_CLASSES_ROOT\CLSID\{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}\ShellFolder

網路:
HKEY_CLASSES_ROOT\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\ShellFolder