Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


458 / 2272 ツリー ←次へ | 前へ→

【11615】コンボボックスにフォームから新規入力 オオガキ 10/4/20(火) 9:57 質問[未読]
【11619】Re:コンボボックスにフォームから新規入力 247b 10/4/20(火) 13:16 発言[未読]
【11620】Re:コンボボックスにフォームから新規入力 オオガキ 10/4/20(火) 14:23 質問[未読]
【11621】Re:コンボボックスにフォームから新規入力 247b 10/4/20(火) 14:45 発言[未読]
【11622】Re:コンボボックスにフォームから新規入力 オオガキ 10/4/20(火) 17:04 質問[未読]
【11623】Re:コンボボックスにフォームから新規入力 247b 10/4/20(火) 17:31 発言[未読]
【11624】Re:コンボボックスにフォームから新規入力 オオガキ 10/4/21(水) 10:54 お礼[未読]

【11615】コンボボックスにフォームから新規入力
質問  オオガキ E-MAIL  - 10/4/20(火) 9:57 -

引用なし
パスワード
   色々検索して実行してみたのですが全くの初心者なのでどうもうまくいきません

どなたかご教授いただけませんでしょうか


製品番号が表示されるコンボボックスがあるのですが
フォームから入力している時にそこに新しく文字をいれて
それを次からコンボボックスに反映されるようにしたいのです

新しい単語を入力は出来ても反映されなかったり
リスト外入力のイベントを設定しても何もおこらないのです


どうぞよろしくお願いいたします

【11619】Re:コンボボックスにフォームから新規入力
発言  247b  - 10/4/20(火) 13:16 -

引用なし
パスワード
   こんにちわ。

以下のプログラムを、該当のコンボボックスのイベント「フォーカス喪失時」に登録してみてください。
コンボボックスの名前は変更してください。

  Dim cs As String
  Dim i As Long
  Dim Alreadyhas As Boolean
  
  cs = コンボ0.Text
  
  For i = 0 To コンボ0.ListCount - 1
    If コンボ0.ItemData(i) = cs Then
      Alreadyhas = True
      Exit For
    End If
  Next
  
  If Not Alreadyhas Then
    コンボ0.AddItem cs
  End If

【11620】Re:コンボボックスにフォームから新規入力
質問  オオガキ E-MAIL  - 10/4/20(火) 14:23 -

引用なし
パスワード
   ▼247b さん:

早速、お返事ありがとうございます。


フォーカス喪失時に登録したのですが
コンボボックスに入力した後、新規作成をするとエラーが出ます

エラーの出ている所は


Private Sub コンボ29_Enter()

End Sub

End SubDim cs As String
  Dim i As Long
  Dim Alreadyhas As Boolean
 
  cs = コンボ29.Text
 
  For i = 0 To コンボ29.ListCount - 1
    If コンボ29.ItemData(i) = cs Then
      Alreadyhas = True
      Exit For
    End If
  Next
 
  If Not Alreadyhas Then
    コンボ29.AddItem cs
  End If

の一番上のPrivate Sub コンボ29_Enter()
という所です


入力の仕方が間違っているのだと思うのですが
どう間違っているのか教えていただけませんか


Private Sub コンボ29_Enter()

End Sub

を消去しても次開くと出てくるのです


初心者的な事だとは思いますがどうぞよろしくお願いします

【11621】Re:コンボボックスにフォームから新規入力
発言  247b  - 10/4/20(火) 14:45 -

引用なし
パスワード
   プログラムを拝見するかぎり、「フォーカス取得時」に記述していますね。
あと、プログラムは
Private Sub コンボ29_Exit()

End Sub
の間に記述します。

以下の様になるはずです。

Private Sub コンボ29_Exit()
    Dim cs As String
  Dim i As Long
  Dim Alreadyhas As Boolean
 
  cs = コンボ29.Text
 
  For i = 0 To コンボ29.ListCount - 1
    If コンボ29.ItemData(i) = cs Then
      Alreadyhas = True
      Exit For
    End If
  Next
 
  If Not Alreadyhas Then
    コンボ29.AddItem cs
  End If

End Sub

【11622】Re:コンボボックスにフォームから新規入力
質問  オオガキ E-MAIL  - 10/4/20(火) 17:04 -

引用なし
パスワード
   本当にありがとうございます!!

ひとつはできました
ずっと悩んでいたのですがやっと出来ました。

でも、もうひとつが同じことをしているのにできません。


Private Sub コンボ4_Exit(Cancel As Integer)
Dim cs As String
  Dim i As Long
  Dim Alreadyhas As Boolean

  cs = コンボ4.Text

  For i = 0 To コンボ4.ListCount - 1
    If コンボ4.ItemData(i) = cs Then
      Alreadyhas = True
      Exit For
    End If
  Next

  If Not Alreadyhas Then
    コンボ4.AddItem cs
  End If

End Sub


なのですが、プロシージャの外では無効です
と表示されます

ちなみにサブフォームのコンボボックスなのですが関係ありますか?

ご指摘いただけると幸いです。

【11623】Re:コンボボックスにフォームから新規入力
発言  247b  - 10/4/20(火) 17:31 -

引用なし
パスワード
   コンボ4のプログラムはメインのフォームに記述していますか?
サブフォームに記述していますか?
メインに記述しているなら、サブフォームに書くように修正してください。
エラーの内容からすると、上記に関係ないところでストップしているように思います。

Private Sub 〜
End Sub

の間に入っていないプログラムの行が存在したりしませんか?

【11624】Re:コンボボックスにフォームから新規入力
お礼  オオガキ E-MAIL  - 10/4/21(水) 10:54 -

引用なし
パスワード
   出来ました!!!

サブフォームには記入していたのですが
色々やっている間にまたフォーカス喪失時に記入できていなかったのと、
失敗した時きちっと消せていなかったらしく
あの表記になったようです


本当に長々とありがとうございました!

本当に助かりました!
ありがとうございます

458 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free