プロが教える店舗&オフィスのセキュリティ対策術

VBAエキスパートの
Access VBA ベーシックの試験を受けようと思って
http://vbae.odyssey-com.co.jp/study/sample_ab.html
のサンプルを見ていたのですが、
問題1や2や3はVBAの知識ではないですよね?
Access VBAの試験なのに
VBAには関係ない問題もたくさんでるのでしょうか?

A 回答 (2件)

料理に例えると、


魚を三枚におろして刺身に出来る人(VBA OKな人?)であっても
魚の特性を知らなければ
フグを食べて・・
オコゼの背びれで・・
生サバで・・
という悲惨な状況になります。
フィールドの特性を知らないとバグを抱えたりエラーになったり。

SQL文はコード中で記述することが良くあります
クエリのSQL文を変更したりコントロールのソースなど。
なので、これも必須です。

以下、蛇足。
VBA Professional Office 2003 の問2は
fCOUNTの値を、10000 あたりで試した方が良さそうです
当方の場合、1000000 だと Sample3は応答なしになりました。(^^ゞ
下記を標準モジュールにコピペしてお試しを。


' Windows が起動してからの経過ミリ秒数を取得
Public Declare Function GetTickCount Lib "Kernel32" () As Long
Private Const fCOUNT As Long = 10000 '←ここを変更してください

Sub Sample1()
Dim a As Long
a = GetTickCount
  Dim i As Long, j As Long
  Dim myRowBuf As String
  Dim myLen As Long
  Dim myBuf As String
  Dim myTmpStr As String

  myRowBuf = "Excel"
  myLen = Len(myRowBuf) * fCOUNT + fCOUNT * 3

  myBuf = String(myLen, vbNullChar)

  For i = 1 To fCOUNT
    myTmpStr = myRowBuf & "1" & vbCrLf
    Mid(myBuf, j + 1, Len(myTmpStr)) = myTmpStr
    j = j + Len(myTmpStr)
    'DoEvents
  Next
Debug.Print "1= " & GetTickCount - a  'ミリ秒で掛かった時間をイミディエイトウィンドウに出力
End Sub

Sub Sample2()
Dim a As Long
a = GetTickCount
  Dim i As Long
  Dim myRowBuf(1 To fCOUNT) As String
  Dim myBuf As String

  For i = 1 To fCOUNT
    myRowBuf(i) = "Excel" & "1"
    'DoEvents
  Next

  myBuf = Join(myRowBuf, vbCrLf)
Debug.Print "2= " & GetTickCount - a
End Sub

Sub Sample3()
Dim a As Long
a = GetTickCount
  Dim i As Long
  Dim myRowBuf As String
  Dim myBuf As String

  myRowBuf = "Excel"

  For i = 1 To fCOUNT
    myBuf = myBuf & vbCrLf & myRowBuf & "1"
    'DoEvents
  Next
Debug.Print "3= " & GetTickCount - a
End Sub
    • good
    • 0
この回答へのお礼

とてもわかりやすい説明ありがとうございます。

お礼日時:2012/03/24 22:15

リンク先の問題を読みました。



問題1~3はAccessVBAの問題というよりも、その基本的な周辺知識に関する問題です。
それがわからないと、プログラミングできないということではないでしょうか。

そういう試験は受けたことはないですが、それらの問題が出るというのは、基本周辺知識を身につけた方が回答率が高まります。
    • good
    • 0
この回答へのお礼

どちらにしろ基本周辺知識を身につけた方がいいということですね。
ありがとうございました。

お礼日時:2012/03/20 10:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!