?? 135.htm
字號:
<p>vb設計數據庫電子郵件程序</p>
<p></p>
<p></p>
<p> 以下是源代碼</p>
<p></p>
<p> 下列數據對于API登錄非常有用: </p>
<p></p>
<p></p>
<p>Public Const HKEY_CURRENT_USER = &H80000001 </p>
<p></p>
<p>Public Const ERROR_SUCCESS = 0& </p>
<p></p>
<p>Public Const SYNCHRONIZE = &H100000</p>
<p>Public Const STANDARD_RIGHTS_READ = &H20000</p>
<p>Public Const KEY_QUERY_VALUE = &H1</p>
<p>Public Const KEY_ENUMERATE_SUB_KEYS = &H8</p>
<p>Public Const KEY_NOTIFY = &H10 </p>
<p></p>
<p>Public Const KEY_READ = ((STANDARD_RIGHTS_READ</p>
<p>KEY_QUERY_VALUE Or _</p>
<p>KEY_ENUMERATE_SUB_KEYS Or _</p>
<p>KEY_NOTIFY) And _</p>
<p>(Not SYNCHRONIZE)) </p>
<p></p>
<p>Public Const REG_DWORD = 4 </p>
<p></p>
<p></p>
<p>Public Declare Function RegOpenKeyEx Lib "advapi32.dll" _</p>
<p>Alias "RegOpenKeyExA" _</p>
<p>(ByVal hKey As Long, _</p>
<p>ByVal lpSubKey As String, _</p>
<p>ByVal ulOptions As Long, _</p>
<p>ByVal samDesired As Long, phkResult As Long) As Long </p>
<p></p>
<p>Public Declare Function RegEnumValue Lib "advapi32.dll" _</p>
<p>Alias "RegEnumValueA" _</p>
<p>(ByVal hKey As Long, _</p>
<p>ByVal dwIndex As Long, _</p>
<p>ByVal lpValueName As String, _</p>
<p>lpcbValueName As Long, _</p>
<p>ByVal lpReserved As Long, _</p>
<p>lpType As Long, _</p>
<p>lpData As Any, _</p>
<p>lpcbData As Long) As Long </p>
<p></p>
<p>Public Declare Function RegCloseKey Lib "advapi32.dll" _</p>
<p>(ByVal hKey As Long) As Long </p>
<p></p>
<p>注釋:-- The subroutine FillODBCCombo is called when the Properties form is loaded.</p>
<p>注釋:-- First the root ODBC key is opened. By iterating through its sub-keys,</p>
<p>注釋:-- all of the installed DNS注釋:s are found and inserted into the DNS ComboBox. </p>
<p></p>
<p></p>
<p>Public Sub FillODBCCombo()</p>
<p></p>
<p>Dim hKey As Long </p>
<p></p>
<p>Dim dwIndex As Long</p>
<p>Dim lpData As Long</p>
<p>Dim lpcbData As Long</p>
<p></p>
<p>Dim lngResult As Long</p>
<p>Dim strResult As String</p>
<p>Dim lpValueName As String</p>
<p>Dim lpcbValueName As Long</p>
<p></p>
<p>注釋:-- 每個ODBC數據源都有一個關鍵字位于</p>
<p>注釋:-- HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources.上</p>
<p>注釋:-- 通過查找每個關鍵字,能夠收集到安裝在ODBC上的所有數據源 </p>
<p></p>
<p>lngResult = RegOpenKeyEx(HKEY_CURRENT_USER, _</p>
<p>"Software\ODBC\ODBC.INI\ODBC Data Sources", _</p>
<p>0&, _</p>
<p>KEY_READ, _</p>
<p>hKey)</p>
<p>If lngResult <> ERROR_SUCCESS Then</p>
<p>MsgBox "Error opening ODBC registry key."</p>
<p>Exit Sub</p>
<p>End If</p>
<p></p>
<p>dwIndex = 0</p>
<p></p>
<p>注釋:-- Add each DNS to the combo</p>
<p>Do</p>
<p>lpcbValueName = 1000</p>
<p>lpcbData = 1000</p>
<p>lpValueName = String(lpcbValueName, 0)</p>
<p></p>
<p></p>
<p>注釋:-- The RegEnumValue function allows you to</p>
<p>注釋:-- move through the subkeys one at a time</p>
<p>lngResult = RegEnumValue(hKey, _</p>
<p>dwIndex, _</p>
<p>ByVal lpValueName, _</p>
<p>lpcbValueName, _</p>
<p>0&, _</p>
<p>REG_DWORD, _</p>
<p>ByVal lpData, _</p>
<p>lpcbData)</p>
<p>If lngResult = ERROR_SUCCESS Then</p>
<p>strResult = Left(lpValueName, lpcbValueName)</p>
<p>DSNCombo.AddItem strResult</p>
<p>End If</p>
<p>dwIndex = dwIndex + 1</p>
<p>Loop While lngResult = ERROR_SUCCESS</p>
<p></p>
<p>RegCloseKey hKey</p>
<p>End Sub </p>
<p></p>
<p></p>
<p></p>
<p> RDO Tables </p>
<p></p>
<p> 為了進入RDO,我在"Microsoft Remote Data Objects 2.0"上添加了一個reference.這個子程序創立了與數據庫的連接,而且為Table ComboBox.命名了每個Table 的</p>
<p></p>
<p> 名稱 </p>
<p></p>
<p>Private Sub FillTableCombo() </p>
<p></p>
<p>注釋:-- Find all the table names using RDO</p>
<p>On Error GoTo DSNTablesError </p>
<p></p>
<p>Dim myEnviroment As rdoEnvironment</p>
<p>Dim myConnection As rdoConnection </p>
<p></p>
<p>Dim strUID As String</p>
<p>Dim strPWD As String</p>
<p></p>
<p>strUID = PropertyForm.UserNameText</p>
<p>strPWD = PropertyForm.PasswordText</p>
<p></p>
<p>Set myEnviroment = rdoEngine.rdoEnvironments(0) </p>
<p></p>
<p>Set myConnection = myEnviroment.OpenConnection(PropertyForm.DSNCombo.Text, _</p>
<p>Connect:="uid=" & strUID & "; pwd=" & strPWD & ";") </p>
<p></p>
<p>TableCombo.Clear</p>
<p>For Each tb In myConnection.rdoTables</p>
<p>TableCombo.AddItem tb.Name</p>
<p>Next</p>
<p></p>
<p>注釋:-- Clear Fields to avoid mismatched data</p>
<p>FieldCombo.Clear</p>
<p></p>
<p>myConnection.Close</p>
<p>myEnviroment.Close</p>
<p></p>
<p>DSNTablesError:</p>
<p>End Sub </p>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -