VBAからVBにステップアップしてきた初心者です。
部内の管理ソフトを作成したいのですがその際ログインする人によって権限を変更したいので職員情報(職員ID、氏名、ログインID、パスワード、権限ランク、等々)をDB(ACCESS)に保存しておいて情報抽出したいと思っていますいろいろ考えてコードを作成しているのですがうまく動きません
Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
Dim DB As New ADODB.Connection, RS As New ADODB.Recordset
Dim 検索Key As String
検索Key = TextBox1.Text
If 検索Key = "" Then
Exit Sub
End If
DB.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Application.StartupPath & "\○○.mdb;" & "Jet OLEDB:Database Password=△△;")
RS.Open("Select * From 職員リスト Where 職員ID = " & 検索Key & "")
If RS.BOF Then
MsgBox(検索Key & "に対応する職員がいません。")
Exit Sub
Else
TextBox2.Text = RS.Fields職員ID ←ここでエラーが出ます
End If
End Sub
まずはTEXTBOX1に職員IDを入力したら勝手に氏名がTEXTBOX2に表示できるようにしたいと思っています。
いろいろレコードセットの表示方法(VBA等)を探し試したのですがどれもうまく動きません。ご教授お願いします
下記のようなサイトもあったのですがVBおよびDB操作を始めたばかりの私には難解でした
http://adonetvb.com/VB2008GetkeyData01.html
よい方法があればよろしくお願いします
いつも大変御世話になっております。
【D:\test】フォルダ内に、VBS【test.vbs】があります。
この【test.vbs】は以下のようなコードです。
--------------------------------------------------------------------------------------
Dim fso, d, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set d = fso.GetDrive(fso.GetDriveName("C:\"))
s = s & "Cドライブ使用可能領域 : " & FormatNumber(d.FreeSpace/1024, 0)
s = s & " KBです。"
if FormatNumber(d.FreeSpace/1024, 0) > 50000000 then
wscript.echo s & " 50G以上の空き容量を確保してますので安全容量です。"
else
if FormatNumber(d.FreeSpace/1024, 0) > 20000000 then
wscript.echo s & " 20G以上の空き容量があります。"
else
if FormatNumber(d.FreeSpace/1024, 0) > 10000000 then
wscript.echo s & " 10G以上の空き容量があります。"
else
wscript.echo s & "不要ファイルを削除して下さい。"
end if
end if
end if
--------------------------------------------------------------------------------------
上記VBSはCドライブ内の空き容量をkbでよみにいき、kbの数値で判定しています。
これをGBでよみにいってGBで判定したいのですが可能でしょうか?
理想は2ケタ表示です。 例:25G (四捨五入で繰り上げた値)
かつwscript.echoのメッセージ箇所を【D:\test\LOG】フォルダ内の【DRIVE.txt】というファイルに追記とかは可能でしょうか?
計算方法の箇所を変更するばよいのですが、ややこしくて困っています。
何かアドバイス等をご教授願いますでしょうか?
宜しくお願い致します。
いつも大変御世話になっております。
【D:\test】フォルダ内に、VBS【test.vbs】があります。
この【test.vbs】は以下のようなコードです。
--------------------------------------------------------------------------------------
Dim fso, d, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set d = fso.GetDrive(fso.GetDriveName("C:\"))
s = s & "Cドライブ使用可能領域 : " & FormatNumber(d.FreeSpace/1024, 0)
s = s & " KBです。"
if FormatNumber(d.FreeSpace/1024, 0) > 50000000 then
wscript.echo s & " 50G以上の空き容量を確保してますので安全容量です。"
else
if FormatNumber(d.FreeSpace/1024, 0) > 20000000 then
wscript.echo s & " 20G以上の空き容量があります。"
else
if FormatNumber(d.FreeSpace/1024, 0) > 10000000 then
wscript.echo s & " 10G以上の空き容量があります。"
else
wscript.echo s & "不要ファイルを削除して下さい。"
end if
end if
end if
--------------------------------------------------------------------------------------
上記VBSはCドライブ内の空き容量をkbでよみにいき、kbの数値で判定しています。
これをGBでよみにいってGBで判定したいのですが可能でしょうか?
理想は2ケタ表示です。 例:25G (四捨五入で繰り上げた値)
かつwscript.echoのメッセージ箇所を【D:\test\LOG】フォルダ内の【DRIVE.txt】というファイルに追記とかは可能でしょうか?
計算方法の箇所を変更するばよいのですが、ややこしくて困っています。
何かアドバイス等をご教授願いますでしょうか?
宜しくお願い致します。
A B C D E F G
-----------------------------------
1| 4 6 1.2 4.8 5.6
2| 10 20 0.2 7.2 6.3
上記のような表で、
同じブックの別のシートのA1列より、
A1×E1の解
A1×F1の解
A1×G1の解
A2×E2の解
A2×F2の解
A2×G2の解(以降、A列の行に数字があれば同じように繰り返し)
隣のB列にも同じように、
B1×E1の解・・・というように計算をしていき表をつくりたいのですが、関数ではどうがんばってもうまくいきません。
VBAでやればなんとかできるかと思うのですが、本を読んでもさっぱりわかりません。。。
誰か詳しい方、教えてくだされば幸いです。
説明が足りなければご指摘ください。
よろしくお願いいたします。
以下のプログラムは10行ごとにデータを抜き出すプログラムです。
これに追加して、普段は10行に1個データを抜き出し、前回の結果より10増減があったとき、
20結果の増減があった時にもデータを抜き出すようにするにはどうすればいいですか?
例えば以下の通り
time result
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 100
12 500
13 1000
14 1000
15 1000
16 1000
17 1000
18 1000
19 1000
20 1000
21 1000
・ ・
・ ・
・ ・
↓
time result
1 1
10 1
11 100
12 500
13 1000
20 1000
・ ・
・ ・
・ ・
ここからプログラム
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Sub nukitori()
Dim X As Worksheet
Dim i As Long
Dim ii As Long
Dim col As Integer
Dim Nukitori_Step As Long
Nukitori_Step = 10
i = 2
ii = 2 '●●●見出し行が1行目なので2で始める
Set X = ActiveSheet
'●シートShordataがあったら削除
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("shortdata").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Worksheets.Add.Name = "shortdata"
'●先ず、見出しをコピー
Worksheets("shortdata").Rows(1).Value = X.Rows(1).Value
While X.Cells(i, 1) <> "" And i < 65535
For col = 1 To 255
Worksheets("shortdata").Cells(ii, col).Value = X.Cells(i, col).Value
Next
If i = 2 Then i = 1
i = i + Nukitori_Step
ii = ii + 1
Wend
End Sub