システムwiki

VBAフォームデータベース内での検索と編集

FrassRa 受付中 最終更新日:2021-06-15 22:48

こんにちは、

私は最初に私が専門家ではないと言わせましょう、私は私が仲良くしているように私はただ学ぶだけです.私の仕事を助けるために自分自身を教える.

私は特定のデータを入力して保存するためにVBAフォームに取り組んできて、データベース内の見出しを使用してデータを検索してから、更新情報を編集して登録します.ただし、ミスマッチタイプのエラーが発生しています
時間エラーとApplicationエラー

これが私がしたことのいくつかのサンプルです.私は本当に助けが大好きです!

サブ送信()

ワークシートとしてDIM SH

長い

を薄暗くする

sh= thisworkbook.sheets( "database")

範囲

としてのDIM R1

R1=シート(「データベース」)を設定します.範囲( "A:A")

frmform.textboxrownumber.value= ""

の場合

IROW= worksheetfunction.counta( "データベース!A2:A")+ 1

IROW= worksheetfunction.counta(r1)

イライラ=イライロー+ 1

else

IROW= FRMFORM.TEXTBOXROWNUMBER.VALUE

の場合は終わります

sh

.Cells(IROW、1)= IROW()-1

.Cells(IROW、2)= frmform.comboboxtrans.value

.Cells(IROW、3)= FRMForm.TextBoxName.Value

.Cells(IROW、4)= FRMForm.TextBoxID1.Value

.Cells(IROW、5)= FRMForm.TextBoxID2.Value

.Cells(IROW、6)= FRMForm.TextBoxTtrn.Value

.Cells(IROW、7)= FRMForm.TextBoxDate.Value

.Cells(IROW、8)= frmform.textboxamount.value

.Cells(IROW、9)= FRMForm.TextBoxPurpose.Value

.Cells(IROW、10)= FRMForm.TextBoxDocsub.Value

.Cells(IROW、11)= FRMForm.TextBoxPoa.Value

.Cells(IROW、12)= FRMForm.TextBoxAdadDDoc.Value

.Cells(IROW、13)= FRMForm.TextBoxComments.Value

.Cells(IROW、14)= Application.Username

.Cells(IROW、15)= [TEXT(NOL)、「DD-MM-YYYY HH:MM:SS」)]<-


がここに誤りがあります

で終わります

終了SUB

______________________________________________________

検索のため:nerraply erryly

サブSearchData()

application.ScreenUpdating= false

ワークシートとしてのDIM Shdatabase

Worksheet

としてDIM SHSearchData

整数

としてのDim Icolumn

Dim Idatabaserow Long

when

を薄暗くする

String

としてのDim Scolumn

String

としての薄暗いSVALUE

shdatabase= thisworkbook.sheets( "database")

shsearchdata= thisworkbook.sheets( "searchdata")

iDatabaserow= Application.ThisWorkbook.Sheets( "データベース").範囲( "a" and rows.count).end(Xlup).ROW

Scolumn= FRMForm.comBoboxSearchColumn.Value

svalue= frmform.textBoxSearch.Value

iColumn= Application.WorksheetFunction.Match(Scolumn、ShDatabase.Range( "A1:O1")、0)

shdatabase.filtermode= trueの場合、

shdatabase.autofilterMode= false

の場合は終わります

frmform.comboboxSearchColumn.Value= "顧客IDタイプ#1"

shdatabase.range( "A:I"&Idatabaserow).autoFilterフィールド:= iColumn、Criteria1:= SValue

else

shdatabase.range( "A1:I"&Idatabaserow).autoFilterフィールド:= iColumn、Criteria1:= "*"&svalue&"*"

の場合は終わります

application.WorksheetFunction.SubTal(3、shdatabase.range( "c:c"))>= 2

の場合

'検索ワークシートから以前のデータを削除する

shsearchdata.cells.clear

shdatabase.autofilter.range.copy shsearchdata.Range( "A1")

Application.cutCopyMode= false

isearchRow= shsearchdata.range( "A"&Application.Rows.Count).end(Xlup).ROW

frmform.lstdatabase.columnCount= 15

FRMFORM.LSTDATABASE.COLUMNWIDTHS= "30,70,70,70,70,50,50,40,55,45,50,60,200,58,70"

ISearchRow>1の場合

frmform.lstdatabase.RowSource= "SearchData!A2:O"&ISearchRow

MsgBox "Recordsが見つかりました"

の場合は終わります

else

msgbox "no recordが見つかりました"

の場合は終わります

shdatabase.autofilterMode= false

application.ScreenUpdating= true

終了SUB

_______________________________________________________________________________________

My Modify関数:(繰り返し、誤りを乗算)

プライベートサブCMDMDIFY_CLICK()

selected_list= 0の場合、

MSGBOX「行が選択されていません」、VBOKONLY + VB情報、「変更」

SUB

を終了します の場合は終わります

Me.TextBoxRownumber.value= Application.WorkSheetFunction.Match(Me.LstDatabase.ListIndex、0、thisWorkbook.Sheets( "データベース!").範囲( "A:A")、0)

me.jpboboxtrans.value= Me.LstDatabase(Me.LstDatabase.ListIndex、1)

Me.textBoxName.Value= Me.LStdatabase(Me.LStdatabase.ListIndex、2)

Me.textBoxID1.Value= Me.LstDatabase(Me.LstDatabase.ListIndex、3)

Me.textBoxID2.Value= ME.LSTDATABASE(ME.LSTDATABASE.LISTINDEX、4)

Me.TextBoxTtrn.Value= Me.LSTDatabase(Me.LstDatabase.ListIndex、5)

Me.TextBoxDate.Value= Me.LstDatabase(Me.LstDatabase.ListIndex、6)

me.textboxamount.value= me.lstdatabase(Me.LstDatabase.ListIndex、7)

me.textBoxPurpose.value= Me.LstDatabase(Me.LstDatabase.ListIndex、8)

Me.TextBoxDocsub.Value= Me.LstDatabase(Me.LstDatabase.ListIndex、9)

me.textboxpoa.value= Me.LstDatabase(Me.LstDatabase.ListIndex、10)

Me.TextBoxAddDoc.value= Me.LstDatabase(Me.LstDatabase.ListIndex、11)

me.textBoxComments.value= Me.LStdatabase(Me.LStdatabase.ListIndex、12)

msgBox( "Requireの変更を加えて、レコードの更新に保存をクリックしてください)、vbokonly + vb情報、" modify "

終了SUB

返信リスト(回答:3)

3 #
Andreas

このファイルを調べてください:

https://www.dropbox.com/s/50kr8mpmgdk0p25/simpleformdatabase.xls?dl=1.

アンドレアス

応答3# ->にスキップ
2 #
FrassRa

ねえ、

それをありがとう...私があなたにリンクを送ることになったら、あなたは私のフォームを実行し、私がどこへ行っているのかを見ることができますか?

応答2# ->にスキップ
1 #
Andreas

すみません、私はあなたのすべてのコードを書き換える時間がありません.

私があなたのコードをもう一度見たとき、私はあなたがユーザーフォームを求めていたことを見ました.私もこれの簡単な例があります.

https://www.dropbox.com/s/x0o1watfo4fcm/simple_userform.xlsm?dl=1.

最初に単純なフォームを見てください、それはすべてこのすべてをするために数回だけかかります.

アンドレアス