|
▼ほびっと さん:
こんにちは。
> 上記のような感じで、
> 顧客名リストの表示を更新したいのです。
Accessに付随している機能だけでは難しい為、
Windowsの機能を借りてくれば可能かもしれません。
Form上にテキストボックスを2つ配置
text1
text2
text1 の キークリック時に以下を記述
Private Sub text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim lngSize As Long
Dim strBuf As String
Dim lngIMC As Long
Dim lnghWnd As Long
lnghWnd = GetFocus
lngIMC = ImmGetContext(lnghWnd)
lngSize = ImmGetCompositionString(lngIMC, GCS_COMPSTR, vbNullString, 0)
strBuf = String(lngSize, vbNullChar)
Call ImmGetCompositionString(lngIMC, GCS_COMPSTR, strBuf, lngSize)
Me.text2.Value = Left(strBuf, lngSize)
Call ImmReleaseContext(lnghWnd, lngIMC)
End Sub
標準モジュールに以下を記述
Declare Function GetFocus Lib "user32" () As Long
Declare Function ImmGetContext Lib "IMM32" (ByVal hWnd As Long) As Long
Declare Function ImmGetCompositionString Lib "IMM32" Alias "ImmGetCompositionStringA" _
(ByVal hIMC As Long, ByVal dwIndex As Long, ByVal lpBuf As String, ByVal dwBufLen As Long) As Long
Declare Function ImmReleaseContext Lib "IMM32" (ByVal hWnd As Long, ByVal hIMC As Long) As Long
Public Const GCS_COMPATTR = &H10
Public Const GCS_COMPCLAUSE = &H20
Public Const GCS_COMPREADATTR = &H2
Public Const GCS_COMPREADCLAUSE = &H4
Public Const GCS_COMPREADSTR = &H1
Public Const GCS_COMPSTR = &H8
Public Const GCS_CURSORPOS = &H80
Public Const GCS_DELTASTART = &H100
Public Const GCS_RESULTCLAUSE = &H1000
Public Const GCS_RESULTREADCLAUSE = &H400
Public Const GCS_RESULTREADSTR = &H200
Public Const GCS_RESULTSTR = &H800
text1 の確定前の情報が text2 に書き出されるかと思います。
あとは確定した場合の処理をどうするかですね。
Yahoo!路線 を見ていた所
「しんじゅ」 で新宿は表示されますが
「新じゅ」だと表示されません。
その様な仕様で宜しければ
確定前:ふりがなフィールドで抽出
確定後:氏名フィールドで抽出
という様な形になるのでしょうか。
|
|