|
|
|
новичок
      
участник
Last Login: 23.05.2000 16:14
Сообщ.: 2,
Visits: 23
|
|
Проблема в переносе из текстового файла с циклически повторяющимися данными расположенными в один столбец в базу данных Access
|
|
|
|
|
Supreme Being
      
администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421,
Visits: 49 251
|
|
Допустим у тебя повторяются данные через x раз (3 строки, потом опять 3 строки и т.д...)
----------------
Dim arr(x) As String
Open fileName For Input As #1
While Not EOF(1)
x=x+1
Line Input #1, arr(x)
If i=x Then
...записать массив в БД...
i=0
End If
Wend
Close #1
----------------
Примерно так
|
|
|
|
|
новичок
      
участник
Last Login: 23.05.2000 16:14
Сообщ.: 2,
Visits: 23
|
|
Вот тако решение прислал мне Armen Mnatsakanyan
E-mail : am86@Yahoo.com
URL : http://www.cm.f2s.com
______________________
Option Explicit
Объявляем переменные
Dim DB As Database
Dim WS As Workspace
Dim RS As Recordset
Private Sub Command1_Click()
Dim A1 As String, A2 As String, A3 As String, A4 As String
Dim A5 As String, A6 As String, A7 As String, A8 As String
Dim A9 As String, path1 As String
Dim strStroka As String
Dim intX As Integer
'Открываем БД
Set WS = DBEngine.Workspaces(0)
Set DB = WS.OpenDatabase("c:\temp\mak1.mdb", False, False)
Set RS = DB.OpenRecordset("RIELT", dbOpenDynaset)
'Открываем файл
cdl1.ShowOpen 'cOMMONDIALOG
path1 = cdl1.FileName
Open path1 For Input As #1
'Начинаем считывать информацию
'1.Создаем цикл
Do While Not EOF(1)
Line Input #1, strStroka
Line1:
If Trim(strStroka) = "##" Then
'2.Переходим к считыванию информации
'Для этого организовываем второй цикл
intX = 0
Do While Not EOF(1)
Line Input #1, strStroka
'If Trim(strStroka) <> Empty Then
'Если количество информации фиксированно - 16
intX = intX + 1
Select Case intX
Case 1
A1 = Trim(strStroka)
Case 2
A2 = Trim(strStroka)
Case 3
A3 = Trim(strStroka)
Case 4
A4 = Trim(strStroka)
Case 5
A5 = Trim(strStroka)
Case 6
A6 = Trim(strStroka)
Case 7
A7 = Trim(strStroka)
Case 8
A8 = Trim(strStroka)
Case 9
A9 = Trim(strStroka)
Case 10
RS.AddNew
RS("A1") = A1
RS("A2") = A2
RS("A3") = A3
RS("A4") = A4
RS("A5") = A5
RS("A6") = A6
RS("A7") = A7
RS("A8") = A8
RS("A9") = A9
RS("A10") = A10
RS.Update
GoTo Line1
End Select
'End If
Loop
End If
Loop
Close #1
MsgBox "Все строки считаны в Базу Данных." & vbCrLf & _
"Общее количество строк - " & RS.RecordCount, vbInformation
RS.Close
DB.Close
WS.Close
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
'При закрытии формы уничтожаем объекты
On Error GoTo ErrHandler
Set RS = Nothing
Set DB = Nothing
Set WS = Nothing
Exit Sub
ErrHandler:
Resume Next
End Sub
|
|
|
|