ログイン/登録システムを作成しようとしています。Excel VBA:InStrで文字列全体を検索します。
これは登録ユーザーフォームです。
Private Sub regReg_Click()
Dim TextFile As Integer
Dim FilePath As String
If regAParole.Text = "aparole" Then
FilePath = ThisWorkbook.Path & "\accounts.txt"
TextFile = FreeFile
Open FilePath For Append As #1
Print #TextFile, regID; regAmats; regParole
Close TextFile
MsgBox ("Registracija veiksmiga.")
Unload Registracija
Else
MsgBox ("Nepareiza administratora parole.")
End If
End Sub
「aparole」のものは、基本的にその管理者のみが新しいアカウントを作成することができますフィールドに入力するだけのキーワードです。
accounts.txtの内容は次のようになります。
1DirectorPassword(ID + jobposition +パスワード)
これは認証です:
Private Sub logAuth_Click()
Dim TextFile As Integer
Dim FilePath As String
Dim FileContent As String
Dim find As String
Dim result As Integer
find = logID & logAmats & logParole
FilePath = ThisWorkbook.Path & "\accounts.txt"
TextFile = FreeFile
Open FilePath For Input As TextFile
FileContent = Input(LOF(TextFile), TextFile)
result = InStr(FileContent, find)
If result >= 1 Then
MsgBox ("Autorizacija veiksmiga!") ' Success
Unload Autorizacija
End If
基本的に私はaccounts.txt内を検索するにはログインするとき私が登録時に使用する文字列コンボ(ID +ジョブポジション+パスワード)。だから、一般的にアプローチは動作しますが、:
私はすべてが完全に一致する入力した場合、私はとても基本的にはどのようにすることができ、それはまだ動作します= 1DirectorPassの形式のように、そのパスワードの半分を入力すると=は素晴らしい
の作品私は文字列全体だけを検索し、その部分は検索しません。
私はこのように、あなたはあなたのファイルの内容に改行マーカーのためにテストすることができ
"1DirectorPassword"はリテラル文字列か、実際には何か変数ですか?リテラルに続く括弧はありますか?どの形式であるかは不明です。 – trincot
私は3つのテキストボックスを持つユーザーフォームを持っています。 ID:textbox、JobPosition:textbow(ドロップダウン選択肢あり)、Password:textbox - 入力されたものは、IDJobPositionPassword(1Directorpassword)の形式でaccounts.txtに保存されます。 各エントリは単一の行にあります。 – user3688039
括弧で囲んだものは一例ですが、そうですか?角かっこは実際にはありませんか? – trincot