2017-10-18 22 views
-2

Access内にDBを作成し、データ型が "Short Text"になっています。VB経由でのMicrosoft Accessでの複数レコードの挿入

今、Visual Basicを使用してこのテーブルにレコードを記録しようとしています。これまでのところコードを書いていますが、エラーを修正するためには助けが必要です。コンパイルエラーが発生しています:

Duplicate declaration in current scope

私はそれが何であるか理解できません。

Option Compare Database 

Sub arrayData() 

Dim CustomerName() As Variant 
Dim num As Integer, dbs As Database, InsertRecord As String 
Dim CustomerID As Long, num1 As Long, CustomerName As String 

Set dbs = CurrentDb() 
CustomerID = 0 
For num1 = 0 To 49999 

CustomerID = CustomerID + 1 
CustomerName = Array("Peter", "Mary") 
CustomerAddress = Array("163 City Rd, SOUTHBANK", "65 Orange St, BENTLEIGH EAST") 
CustomerPhoneAddress = Array("0416874963", "0478937534") 
num = Int((200 - 0 + 1) * Rnd + 0) 
CustomerName = CustomerName(num) 
CustomerAddress = CustomerAddress(num) 
CustomerPhoneNo = CustomerPhoneNo(num) 
InsertRecord = "INSERT INTO Customers (CustomerID,CustomerName,CustomerAddress,CustomerPhoneNo) VALUES (" & "'" & CustomerID & "'" & "," & "'" & CustomerName & "'" & "," & "'" & CustomerAddress & "'" & "," & "'" & CustomerPhoneNo & "'" & ")" 

dbs.Execute InsertRecord 
Debug.Print CustomerID, CustomerName, CustomerAddress, CustomerPhoneNo 

Next 

End Sub 

この場合、私は何ができますか?どんな助けもありがとう。

+1

厥ないVB.NETコード。 – Plutonix

+0

2つのタグのうち2つが間違っています - 悪くない! (固定) – YowE3K

+0

どういう意味ですか?それを私に少し説明していただけますか? –

答えて

0

使用する言語は、「Visual Basic for Applications」(VBA)です。この言語は行指向です。少なくとも1つの空白が先行する行継続文字(_)を使用していない限り、1つの文が1行に収まる必要があります。

Dim CustomerID As Long, num1 As Long, CustomerName As String, CustomerAddress _ 
    As String, CustomerPhoneNo As String 

しかし、私は別の行にLongString変数を配置し、記述します。

Dim CustomerID As Long, num1 As Long 
Dim CustomerName As String, CustomerAddress As String, CustomerPhoneNo As String 

2番目の構文エラーがInsertRecord = "INSERT INTO ...文です。ここで同じ問題。また、Int((200 - 0 + 1) * Rnd + 0)中のため- 0+ 0良いものです

InsertRecord = "INSERT INTO CUSTOMERS (CustomerID,CustomerName," _ 
     & "CustomerAddress,CustomerPhoneNo) VALUES " _ 
     & "(" & "'" & CustomerID & "'" & "," & "'" & CustomerName & "'" & "," & "'" _ 
     & CustomerAddress & "'" & "," & "'" & CustomerPhoneNo & "'" & ")" 

:それは次のようになりshoul。式はInt(201 * Rnd)に相当します。


編集した後は、行の続きはないようです。

エラーは、次のとおりです。あなたはCustomerNameという名前の2つの変数を持っています。 、例えば

Dim CustomerName() As Variant 
Dim CustomerName As String 

配列CustomerNames名:変数名は一意でなければなりません

Dim CustomerNames() As Variant 

をそして、あなたはあなたのコードをインデントする必要があります。それは読むのがずっと簡単です。

Sub arrayData() 
    Dim CustomerName() As Variant 
    ... 
    CustomerID = 0 
    For num1 = 0 To 10 
     CustomerID = CustomerID + 1 
     ... 
     Debug.Print CustomerID, CustomerName, CustomerAddress, CustomerPhoneNo 
    Next 
End Sub 
+1

私はOPが実際のコードを投稿すると主張しました。改訂版では行の継続がないことを示しています行継続文字は必要ありません。 – YowE3K

+0

私はすべてを1行で使用しています。私はそれが問題だとは思わない。私がコメントで与えたスクリーンショットを確認してください。とにかくお返事ありがとうございます。 –

+0

'CustomerName'でうまく見つけました!!私の目はそれに気付かなかった。 @MalikDraz ** **あなたの質問を編集して、「軽微な誤り」が何であるかを述べてください。 – YowE3K

関連する問題