Microsoft SQL Server 2000 Desktop Engine を含む Access 2002 プロジェクトを展開する方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:299297
これ資料は、Microsoft Access プロジェクト (.adp) にのみ適用されます。

詳細: エキスパート コーディング、相互運用性、およびマルチ ユーザーを必要します。スキル。

この Microsoft Office 2000年の開発バージョン記事は、 240293.

このタスクで

概要
Microsoft SQL Server の 2000 Desktop Engine (MSDE 2000) です。付属している、SQL Server 2000年と互換性のあるデータの記憶域サーバーMicrosoft Office XP 開発者は、再頒布する権利を持つ。Office XPパッケージ ウィザードの開発者は、SQL Server 2000年などのオプションをがAccess プロジェクトをパッケージ化すると、desktop Engine (* .adp) ソリューション。時ソリューションが、SQL Server 2000年は、ユーザーのコンピューターにインストールされています。Desktop Engine は、ソリューションと共にインストールされます。ただし、SQL Server2000 Desktop Engine が開始されていない場合、データベースは、SQL に接続されていません。Server 2000 デスクトップ エンジン。

メモMicrosoft SQL Server 2000 Desktop Engine の以前のバージョンMicrosoft データ エンジン (MSDE) と呼ばれます。

この資料で場合は、サーバーを起動するのには、サーバーを検索するために使用する必要がありますコードを提供します。既にサーバーにデータベースをアタッチするのには、接続を開始されていません。新しくアタッチされたデータベースのプロジェクトです。コードで使用する固有のものにプロジェクトです。ただし、コードの大部分は Visual Basic で使用できます。アプリケーション (VBA) アプリケーションです。

Microsoft プログラミング例としては、明示または黙示の保証もないだけを提供します。これを含むが、商品性や特定目的への適合性の黙示的な保証に制限はありません。この資料は、例示されているプログラミング言語やを作成したりプロシージャをデバッグするために使用されるツールに精通するいると仮定します。マイクロソフト サポート エンジニアに、特定のプロシージャの機能について説明する役立ちますが追加機能を提供またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。 back to the top

アプリケーションを配置用のプロジェクトの既存を変更する手順

次の手順は、既にある前提としていますが正しく展開する準備ができているプロジェクトのアプリケーションを操作します。手順追加するコードを追加するには、VBA プロジェクトの方法は、要求の処理を行う方法調整するには、スタートアップ フォームおよび展開パッケージを作成する方法については、既存の Microsoft Access プロジェクト (* .adp) は、マイクロソフトの SQL が含まれていますServer 2000 デスクトップ エンジン。
  1. 展開するには、目的の Access プロジェクトを開くし、新しいモジュールを作成します。

    含まれるコードを使用するためSQLDMO コードおよびスクリプトの実行に必要な参照があることを確認する必要があります。存在します。
  2. で、 ツール Visual Basic エディターのメニューをクリックします。 参照.
  3. で、 参照 ダイアログ ボックスでは、まだない場合は、次を選択する] をクリックします。選択します。
    • Microsoft SQLDMO オブジェクト ライブラリ
    • Microsoft スクリプト ランタイム
  4. クリックしてください。 [OK] 閉じるには、 参照 ダイアログ ボックスです。
  5. 次のコードを新しいモジュールにコピーします。
    Option Compare DatabaseOption ExplicitDim adp_UseIntegratedSecurity As BooleanPublic Function fStartUp(strDBName As String, strMDFName As String, _        Optional strUN As String, Optional strPW As String)'------------------------------------------------------------'The code in this project connects the MDF file'to a local MSDE, then establishes the connection between'the Access Project and MSDE.'------------------------------------------------------------    Dim strSQLInstances As String    Dim strServername As String    Dim intInst As Integer    Dim strMachineName As String    Dim spaceLocation As Long    'If no username is supplied, and you cannot 'use integrated security, the function requires that you provide a valid SQL Server user account and password.        If Not fCheckForCompatibleOS Then        strMachineName = "(local)"            If strUN = "" Then               MsgBox "Provide a valid SQL Server user account and password to log on to SQL Server because the current operating system does not support integrated security."               Exit Function            End If           adp_UseIntegratedSecurity = False    Else        strMachineName = ComputerName        If strUN = "" Then            adp_UseIntegratedSecurity = True        Else            adp_UseIntegratedSecurity = False        End If    End If    'Find the available instances of SQL 2000 on the computer.    intInst = GetValidSQLInstances(strSQLInstances)    If intInst < 1 Then        Dim strErrorMsg As String        strErrorMsg = "This application requires SQL Server 2000 " & _            "to be installed on the local computer."        MsgBox strErrorMsg, vbCritical, "SQL Server 2000 not installed!"        Exit Function    End If    'At this point, it has been determined that there is at    'least one valid SQL Server 2000 instance on the computer.    'The code below picks the default or first instance if more than    'one is available. You may want to add code to prompt the user for    'a choice when there is more than one instance on the computer.        If InStr(1, strSQLInstances, "MSSQLSERVER") Then        strServername = strMachineName    Else        spaceLocation = InStr(1, strSQLInstances, " ")        If spaceLocation = 0 Then            strServername = strMachineName & "\" & strSQLInstances        Else            strServername = strMachineName & "\" & Mid(strSQLInstances, 1, spaceLocation)        End If    End If        'Call fstartMSDE to connect to SQL Server    fStartMSDE strServername, strUN, strPW        'Call sCopyMDF to move the data file to the data folder    'of SQL Server, and then attach it to the server.    fCopyMDF strServername, strUN, strPW, strDBName, strMDFName        'Connect the ADP to the new database    fChangeADPConnection strServername, strDBName, strUN, strPWEnd FunctionPublic Function fStartMSDE(strServername As String, _                Optional strUN As String, Optional strPW As String)'------------------------------------------------------------'This subroutine will turn on MSDE. If the server has been'started, the error trap will exit the function leaving the'server running.''Note that it will not put the SQL Service Manager on'the start bar.''Input:'   strServername    The server to be started'   strUN        The user used to start server'   strPW        The password of user''Output:'   Resolution of start''References:'   SQLDMO'------------------------------------------------------------    Dim osvr As SQLDMO.SQLServer    Set osvr = CreateObject("SQLDMO.SQLServer")            On Error GoTo StartError 'Error Trap    osvr.LoginTimeout = 60    osvr.LoginSecure = adp_UseIntegratedSecurity    osvr.Start True, strServername, strUN, strPWExitSub:    Set osvr = Nothing    Exit FunctionStartError:    If Err.Number = -2147023840 Then    'This error is thrown when the server is already running,    'and Server.Start is executed on Windows NT, 2000, or XP.               osvr.Connect strServername, strUN, strPW  'Connect to Server                Else 'Unknown Error        MsgBox Err.Number & ": " & Err.Description    End If    Resume ExitSubEnd FunctionPublic Function fCopyMDF(strServername As String, _                strUN As String, strPW As String, _                strDBName As String, _                sMDFName As String)'------------------------------------------------------------'This Function determines whether the database is already on'the MSDE Server. If the database does not exist, this'function copies the MDF file from the same location as the'ADP to MSDE's Data directory and then attaches the database.''Input:'   strServername 	The server to be started'   strUN        	The user used to start server'   strPW 		The password of user'   strDBName 		The Name of the SQL Database'   sMDFName 		The Name of the MSDE Database to be copied''Output:'   Resolution of copy''References:'   SQLDMO'   Scripting Runtime'------------------------------------------------------------Dim FSO As Scripting.FileSystemObjectDim osvr As SQLDMO.SQLServerDim strMessage As StringDim db As VariantDim fDataBaseFlag As BooleanDim dbCount As IntegerOn Error GoTo sCopyMDFTrap    'The drive names used in FSO.Copyfile and    'oSvr.AttachDBWithSingleFile must match the    'locations for Program Files and MSDE on the    'computer of the end user.    fCopyMDF = ""    fDataBaseFlag = False    Set FSO = CreateObject("Scripting.FileSystemObject")    Set osvr = CreateObject("SQLDMO.SQLServer")    osvr.LoginSecure = adp_UseIntegratedSecurity    osvr.Connect strServername, strUN, strPW    dbCount = osvr.Databases.Count        'Look for database existence on Local MSDE Server    'by looping through all database names on the local    'MSDE Server.    For Each db In osvr.Databases            If db.Name = strDBName Then 'The database exists            fDataBaseFlag = True            Exit For 'Get out of loop        End If      Next        If Not fDataBaseFlag Then 'There is no database                              'matching sDBName        'Copy File to data folder.        FSO.CopyFile Application.CurrentProject.Path _        & "\" & sMDFName, _        osvr.Databases("master").PrimaryFilePath & _        sMDFName, True        'Attach to database.        strMessage = osvr.AttachDBWithSingleFile(strDBName, _            osvr.Databases("master").PrimaryFilePath _            & sMDFName)    End If     ExitCopyMDF:    osvr.Disconnect    Set osvr = NothingExit Function    sCopyMDFTrap:    If Err.Number = -2147216399 Then 'DMO must be initialized        Resume Next    Else        MsgBox Err.Description    End If        Resume ExitCopyMDFExit Function    End FunctionFunction MakeADPConnectionless()'------------------------------------------------------------'This code removes the connection properties from the'Access Project for troubleshooting purposes.'The ADP will open in a disconnected state until new connection'properties are supplied.'------------------------------------------------------------    Application.CurrentProject.OpenConnection ""End Function Function fChangeADPConnection(strServername, strDBName As String, Optional strUN As String, _        Optional strPW As String) As Boolean'------------------------------------------------------------'This Function resets the connection for an ADP by using the'input parameters to create a new connection string. If no username'is supplied, it tries to connect by using integrated security.''Input:'   strServerName    The server to be started'   strDBName   The Name of the MSDE Database'   strUN        The user used to start server'   strPW        The password of user'------------------------------------------------------------    Dim strConnect As String    On Error GoTo EH:    strConnect = "Provider=SQLOLEDB.1" & _    ";Data Source=" & strServername & _    ";Initial Catalog=" & strDBName    If adp_UseIntegratedSecurity Then        strConnect = strConnect & ";integrated security=SSPI"    Else        strConnect = strConnect & ";user id=" & strUN        strConnect = strConnect & ";password=" & strPW    End If    Application.CurrentProject.OpenConnection strConnect    fChangeADPConnection = True    Exit FunctionEH:    MsgBox Err.Number & ": " & Err.Description, vbCritical, "Connection Error"    fChangeADPConnection = FalseEnd Function					
  6. このモジュールを保存します。modCopyConnect.
  7. 2 つ目のモジュールを作成し、次のコードをコピー第 2 章
    Option Compare DatabaseOption Explicit'This module provides functions that work together to'find existing computers running SQL Servers, and also the computer name.      Public Type OSVERSIONINFO    dwOSVersionInfoSize As Long    dwMajorVersion As Long    dwMinorVersion As Long    dwBuildNumber As Long    dwPlatformId As Long    szCSDVersion As String * 128End TypeDeclare Function GetVersionExA Lib "kernel32" _         (lpVersionInformation As OSVERSIONINFO) As IntegerPrivate Declare Function OSRegOpenKey Lib "advapi32" Alias _"RegOpenKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, _phkResult As Long) As LongPrivate Declare Function OSRegQueryValueEx Lib "advapi32" _Alias "RegQueryValueExA" (ByVal hKey As Long, _ByVal lpszValueName As String, ByVal dwReserved As Long, _lpdwType As Long, lpbData As Any, cbData As Long) As LongPrivate Declare Function GetComputerName _Lib "kernel32" Alias _"GetComputerNameA" (ByVal lpBuffer As String, _nSize As Long) As LongPrivate Declare Function OSRegCloseKey Lib "advapi32" _Alias "RegCloseKey" (ByVal hKey As Long) As LongPrivate Const MAX_COMPUTERNAME_LENGTH As Long = 15&Public Const HKEY_CLASSES_ROOT = &H80000000Public Const HKEY_CURRENT_USER = &H80000001Public Const HKEY_LOCAL_MACHINE = &H80000002Public Const HKEY_USERS = &H80000003Private Const ERROR_SUCCESS = 0&Private Const VER_PLATFORM_WIN32s = 0  'Win32s on Windows 3.1Private Const VER_PLATFORM_WIN32_WINDOWS = 1  'Windows 95/98/ME.Private Const VER_PLATFORM_WIN32_NT = 2  'Windows NT/2000/XPPrivate Const REG_SZ = 1Private Const REG_BINARY = 3Private Const REG_DWORD = 4Private Const REG_MULTI_SZ = 7Public Function GetValidSQLInstances(ByRef strSQLInstances _                As String) As Integer'-----------------------------------------------------------' This returns number of valid SQL instances and a space' delimited string that lists the instances.'-----------------------------------------------------------    Dim hKey As Long, i As Integer    Dim strVersionInfo As String    strSQLInstances = ""    GetValidSQLInstances = 0        If RegOpenKey(HKEY_LOCAL_MACHINE, _    "Software\Microsoft\Microsoft SQL Server", hKey) Then        RegQueryStringValue hKey, "InstalledInstances", strSQLInstances        RegCloseKey hKey        StrConv strSQLInstances, vbUpperCase        If InStr(1, strSQLInstances, "MSSQLSERVER") Then           If RegOpenKey(HKEY_LOCAL_MACHINE, _           "Software\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion", _           hKey) Then                RegQueryStringValue hKey, "CurrentVersion", strVersionInfo                RegCloseKey hKey                If Mid(strVersionInfo, 1, 1) <> 8 Then                    Replace strSQLInstances, "MSSQLSERVER", ""                End If            End If        End If        Trim strSQLInstances        If Len(strSQLInstances) > 0 Then            GetValidSQLInstances = GetValidSQLInstances + 1        Else            Exit Function        End If        For i = 1 To Len(strSQLInstances)            If Mid$(strSQLInstances, i, 1) = " " Then                GetValidSQLInstances = GetValidSQLInstances + 1            End If        Next i    End IfEnd FunctionPublic Function RegOpenKey(ByVal hKey As Long, _ByVal lpszSubKey As String, phkResult As Long) As Boolean'-----------------------------------------------------------' FUNCTION: RegOpenKey' Opens an existing key in the system registry.' Returns: True, if the key opened successfully. False' otherwise.' Upon success, phkResult is set to the handle of the key.'-----------------------------------------------------------    Dim lResult As Long    Dim strHkey As String    strHkey = strGetHKEYString(hKey)    lResult = OSRegOpenKey(hKey, lpszSubKey, phkResult)    If lResult = ERROR_SUCCESS Then        RegOpenKey = True    End IfEnd FunctionPublic Function RegCloseKey(ByVal hKey As Long) As Boolean    Dim lResult As Long'-----------------------------------------------------------' FUNCTION: RegCloseKey' Closes an open registry key.' Returns: True on success, else False.'-----------------------------------------------------------    lResult = OSRegCloseKey(hKey)    RegCloseKey = (lResult = ERROR_SUCCESS)End FunctionPrivate Function strGetHKEYString(ByVal hKey As Long) As String'-----------------------------------------------------------'Given an HKEY, return the text string representing that key.'-----------------------------------------------------------    Dim strKey As String    Dim intIdx As Integer    strKey = strGetPredefinedHKEYString(hKey)    If Len(strKey) > 0 Then        strGetHKEYString = strKey        Exit Function    End If End FunctionPrivate Function strGetPredefinedHKEYString(ByVal _hKey As Long) As String'-----------------------------------------------------------'Given a predefined HKEY, return the text string representing'that key, or else return vbNullString.'-----------------------------------------------------------    Select Case hKey        Case HKEY_CLASSES_ROOT            strGetPredefinedHKEYString = "HKEY_CLASSES_ROOT"        Case HKEY_CURRENT_USER            strGetPredefinedHKEYString = "HKEY_CURRENT_USER"        Case HKEY_LOCAL_MACHINE            strGetPredefinedHKEYString = "HKEY_LOCAL_MACHINE"        Case HKEY_USERS            strGetPredefinedHKEYString = "HKEY_USERS"    End SelectEnd FunctionPublic Function RegQueryStringValue(ByVal hKey As Long, _ByVal strValueName As String, strData As String) As Boolean'-----------------------------------------------------------' Retrieves the string data for a named' (strValueName = name) or unnamed (Len(strValueName) = 0)' value in a registry key. If the named value' exists, but its data is not a string, this function' fails.'' Returns: True on success, else False.'   On success, strData is set to the string data value.'-----------------------------------------------------------    Dim lResult As Long    Dim lValueType As Long    Dim strBuf As String    Dim lDataBufSize As Long    lResult = OSRegQueryValueEx(hKey, strValueName, 0&, _              lValueType, _        ByVal 0&, lDataBufSize)    If lResult = ERROR_SUCCESS Then        If lValueType = REG_SZ Then            strBuf = space$(lDataBufSize)            lResult = OSRegQueryValueEx(hKey, strValueName, 0&, _                 0&, ByVal strBuf, lDataBufSize)            If lResult = ERROR_SUCCESS Then                RegQueryStringValue = True                strData = StringFromBuffer(strBuf)            End If                ElseIf lValueType = REG_MULTI_SZ Then            strBuf = space$(lDataBufSize)            lResult = OSRegQueryValueEx(hKey, strValueName, 0&, _                      0&, _                ByVal strBuf, lDataBufSize)            If lResult = ERROR_SUCCESS Then                RegQueryStringValue = True                strData = ReplaceNullsWithSpaces(strBuf)            End If        End If    End IfEnd FunctionPublic Function StringFromBuffer(Buffer As String) As String    Dim nPos As Long    nPos = InStr(Buffer, vbNullChar)    If nPos > 0 Then        StringFromBuffer = Left$(Buffer, nPos - 1)    Else        StringFromBuffer = Buffer    End IfEnd FunctionPublic Function ReplaceNullsWithSpaces(str As String) As String'-----------------------------------------------------------' Replace all null characters with spaces.'-----------------------------------------------------------    Dim i As Integer    If Len(str) > 0 Then        For i = 1 To Len(str)            If Mid$(str, i, 1) = vbNullChar Then                Mid$(str, i, 1) = " "            End If        Next i        ReplaceNullsWithSpaces = Left$(str, Len(str) - 2)    Else        ReplaceNullsWithSpaces = str    End IfEnd FunctionPublic Function ComputerName() As String'-----------------------------------------------------------'  Returns the local computer name.'-----------------------------------------------------------    Dim nLen As Long    Dim strComputerName As String    nLen = MAX_COMPUTERNAME_LENGTH    strComputerName = String$(nLen, 0)    GetComputerName strComputerName, nLen    strComputerName = Left$(strComputerName, nLen)    ComputerName = strComputerNameEnd Function  Public Function fCheckForCompatibleOS() As Boolean'-----------------------------------------------------------'  Checks to see if the OS can use integrated security.'-----------------------------------------------------------    Dim osinfo As OSVERSIONINFO    Dim retvalue As Integer    osinfo.dwOSVersionInfoSize = 148    osinfo.szCSDVersion = space$(128)    retvalue = GetVersionExA(osinfo)    If osinfo.dwPlatformId >= VER_PLATFORM_WIN32_NT Then        fCheckForCompatibleOS = True    Else        fCheckForCompatibleOS = False    End IfEnd Function
  8. 2 番目のモジュールとしての保存します。GetSQLInstances.
  9. デザイン ビューで、既存のスタートアップ フォームを開くかまたは作成します。スタートアップ フォームがあるない場合の新しいスタートアップ フォームです。
  10. コマンドを追加する、 開く時 呼び出すと、スタートアップ フォームのイベント プロパティは、 fStartUp 関数です。

    データベース名を指定してください。SQL Server と SQL Server のデータの既存のファイル名を作成します。必要な SQL Server のログオン名とパスワードも指定できます。統合セキュリティを使用していない場合は、オプションの 3 番目と 4 番目引数。たとえば、Northwind を使用すると呼ばれるデータベースを作成します。NorthwindSQL.mdf と呼ばれるデータ ファイルは、関数が表示されます。
    =fStartUp("Northwind","NorthwindSQL.mdf","","")
    メモ この注意は、SQL Server セキュリティに関するものです。ありませんを指定しない場合は、ログオン名は、以前のバージョンに記載されている関数の呼び出しでこのコード「オペレーティング システム場合は、統合セキュリティを使用しようとしていますいます。(Microsoft Windows NT 4.0、Microsoft Windows 2000、および Microsoft サポートします。Windows XP)。オペレーティング システムの Microsoft Windows 98 の場合、またはMicrosoft Windows me、有効な SQL Server ユーザー アカウントとパスワードを入力します。オペレーティング システムを少なくとも 1 つのログオン名を指定した場合にかかわらず、コードは提供されたログオン名と SQL のセキュリティを使用して接続しようとパスワードです。SQL Server データ ファイルのコピーがあるない場合は、する必要があります。展開パッケージに追加するのには、データ ファイルをコピーします。
  11. で、 ツール メニューのポイント データベース ユーティリティ、し データベース ファイルをコピーします。.
  12. 結果に ファイルを開く ダイアログ ボックスで、名前と場所を指定します。データベース ファイルを保存をクリックします。 保存 プロセスが終了して、ダイアログ ボックスを閉じますをします。場合は、プロジェクトのターゲット コンピューターで最初の実行、Access、SQL に接続しようとしています。ファイルの [接続] プロパティで指定されたサーバーです。が、この資料のコードは引き続き実行され、、接続情報を更新、前に、既存の接続情報を削除することをお勧めします展開します。

    既存の接続情報を削除するを実行します。は、 MakeADPConnectionless() modCopyConnect に含まれている関数は、モジュールです。

  13. 関数を実行するのには、次を入力、 イミディ エイト ウィンドウ、し、ENTER キーを押します。
    ?MakeADPConnectionless
  14. 変更内容を保存します。
  15. で、 アドイン パッケージ ウィザードが表示されている場合は、メニューの手順 19 に進みます。
  16. で、 アドイン メニューをクリックして アドイン マネージャー.
  17. で、 使用可能なアドイン ボックスの一覧でクリックしてください パッケージ ウィザード.
  18. [ロード方法] ボックスをクリックします。 [ロード/アンロード、し [OK].
  19. で、 アドイン メニューをクリックして パッケージ ウィザード.
  20. 達するまで、ウィザードの手順に従ってください、 依存関係 画面。
  21. で、 依存関係 画面をクリックしてください ファイルを追加してください. MDF ファイルを以前のバックアップを追加します。
  22. クリックしてください。 次へ あなたにするまで、 Access ランタイムのプロパティ 画面。この画面をクリックして、 Microsoft SQL Server 2000 Desktop Engine (MSDE) MSDE のエンジンを搭載するチェック ボックスします。
  23. パッケージを完了するのには、ウィザードの手順を実行しますかクリックすると 終了日 ときに、します。
パッケージの作成が完了したらをインストールするのにはエンドユーザーのコンピューターにパッケージします。

back to the top

関連情報
SQL 2000 などについてDesktop Engine のパッケージ内の他のコンピューターでは、次の資料をクリックします。数値は、マイクロソフト サポート技術記事を表示するのには:
290623SQL Server 2000年を既存のデータベースを SQL Server 2000 Desktop Engine に接続する方法
322228 (ホワイト ペーパー) のカスタム アプリケーションのセットアップに Msde を埋め込む
274199 Windows 95 で MSDE 2000 をインストールすることはできません。
299351 BUG: MSDE インストール SQL Server 2000 Service Pack 1 または 2 がインストールされているシステム上で失敗します。
アップサイジングの詳細については、SQL 2000 Desktop Engine にデータベース、する次の資料番号をクリックします。記事は、マイクロソフト サポート技術参照してください。
325023アップサイズ SQL Server 2000年デスクトップ エンジン SQL Server
back to the top
offxpdev ACCXP [acc2002]

警告: この記事は自動翻訳されています

プロパティ

文書番号:299297 - 最終更新日: 07/24/2011 21:01:00 - リビジョン: 7.0

  • kbhowto kbqfe kbfaq kbadp kbhotfixserver kbmt KB299297 KbMtja
フィードバック