ドメインコントローラーの移行方法

①移行前DCにセカンダリDCを追加する

②セカンダリDCにFSMOを転送する
ntdsutil → roles → connections → Connect to server [セカンダリDC]
→ quitでfsmo maintenanceに戻る
→ transferで役割を転送する
・transfer schema master
・transfer naming master
・transfer infrastructure master
・transfer PDC
・transfer RID master
※もし移行前DCが接続できない状態にあればtransferの代わりに「seize」で強制移行を行う

③移行前DCを降格させる

VBからIEを操作する

何回も実行するとオートメーションエラーが出るようだ。何回も実行する要件のプログラム書く時は.net使うべきだと思う。

Dim ieObject As Object

Set ieObject = CreateObject("InternetExplorer.Application")

ieObject.Visible = True
ieObject.Navigate "http://www.google.co.jp/"

'READYSTATE_COMPLETE=4です
Do While ieObject.ReadyState <> 4 Or ieObject.Busy = True
    'nop
Loop

ieObject.Document.getElementsByName("q")(0).Value = "test"

ieObject.Quit

Set ieObject = Nothing

MS AccessでADOトランザクション

Dim connection As New ADODB.connection
connection.ConnectionString = CurrentProject.BaseConnectionString
connection.Open

connection.BeginTrans

connection.Execute "UPDATE test SET val = 'test';"

connection.CommitTrans
'connection.RollbackTrans

VBからADOでMDBにアクセスする

参照設定で「Microsoft ActiveX Data Objects X.X Library」を追加する
CurrentProject.BaseConnectionStringを常時使用すると様々なAccess本来の機能に不具合が出るので、排他ロックが必要な場合以外は大人しくCurrentProject.Connectionを使用するのが良いと思う。正直、AccessでADO使うの面倒くさい。

Dim connection As ADODB.connection
Dim recordset As ADODB.recordset

'ACCESS以外からの接続はこっちを使う
'Set connection = New ADODB.connection
'2000~2003
'connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb"
'2007~
'connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test.accdb"

'ACCESS内の接続はこっちを使う
Set connection = New ADODB.Connection
connection.ConnectionString = CurrentProject.BaseConnectionString
connection.Open

Set recordset = New ADODB.recordset

recordset.Open "SELECT * FROM test;", connection, adOpenKeyset, adLockPessimistic

Do While recordset.EOF = False
    Debug.Print recordset.Fields(0).Value
    Debug.Print recordset.Fields("column").Value
    recordset.MoveNext
Loop

recordset.Close
connection.Close

Set recordset = Nothing
Set connection = Nothing

MS AccessでDAOトランザクション

Dim workspace As DAO.workspace
Set workspace = DBEngine.Workspaces(0)
Dim database As DAO.database
Set database = CurrentDb

workspace.BeginTrans

database.Execute "UPDATE test SET val = 'test';"

workspace.CommitTrans
'workspace.Rollback

MS AccessレポートのTextBoxの文字サイズを幅で自動調整する関数

Public Static Sub adjustFontSize(ByRef report As Report, ByRef textBox As TextBox)

Dim text As String
text = textBox.text

Report.FontSize = textBox.FontSize

Dim tempWidth As Integer
tempWidth = Report.TextWidth(text)

Do While textBox.Width < tempWidth Report.FontSize = Report.FontSize - 1 tempWidth = Report.TextWidth(text) Loop textBox.FontSize = Report.FontSize End Sub [/sourcecode]