Вставка файлов .txt в массивы Access VBA - PullRequest
0 голосов
/ 26 апреля 2020

Спасибо, что прочитали это. У меня есть база данных Access VBA, в которой приведены некоторые измерения. Вид не важен, потому что это школьная работа. Это для обучения. Проблема в том, что я понятия не имею, как вставить .txt файлы, которые я сохранил, используя ту же программу, в которую я хочу вставить их снова. Мне нужно Softcoded решение. Сохранение массива также имеет программный код

Вот мой код и "Gui" моего приложения:

Создание массива, а также функции вычислений

Option Compare Database
Option Explicit

Sub SubEinlesen(x, n, Frmname)
Dim i As Integer

    DoCmd.GoToRecord , Frmname, acFirst
    Do
        i = i + 1                                      
        x(i) = Forms(Frmname).TxTMesswert               
        DoCmd.GoToRecord , Frmname, acNext              
    Loop Until IsNull(Forms(Frmname).TxTMesswert)       

n = i                                              
End Sub

Function FktMittelwert(x, n)
'Hier nur lokale Variablen dim
Dim i As Integer
Dim Summe As Single

For i = 1 To n
    Summe = Summe + x(i)
Next i

FktMittelwert = Summe / n 
End Function

Function FktVarianz(x, n, XQuer)
'Hier nur lokale Variablen dim
Dim i As Integer
Dim Summe As Single

For i = 1 To n
    Summe = Summe + (x(i) - XQuer) ^ 2
Next i

FktVarianz = Summe / n 'Rücksprung an rufende fkt mit Hilfe des Namens der Funktion
End Function

.txt создание

Option Compare Database
Option Explicit


Sub subSpeichern(x, n, Dateiname, DateiPfad, Frmname)

Dim i As Integer

Dateiname = Forms(Frmname).TxtDName 'dateiname aus Formular auslesen
DateiPfad = Forms(Frmname).TxtDPfad 'dateipfad aus Formular auslesen

Close #1                                    'aus sicheriheitsgründen Knal 1 schließen
Open DateiPfad & Dateiname For Output As #1 'Datei zum speichern öffnen
Write #1, n
For i = 1 To n
        Write #1, x(i)
Next i

Close #1 'schließen der Datei bewirkt Abspeichern der Daten



End Sub

Вывод prducts

Function FktAusgabe(n, XQuer, Varianz, Standard, min, max, Frmname)
Dim i As Integer

    With Forms(Frmname)
        .TxtXquer = XQuer
        .TxtVarianz = Varianz
        .TxtStandard = Standard
        .TxtMin = min
        .TxtMax = max
    End With

DoCmd.GoToRecord , Frmname, acFirst

For i = 1 To n
    Forms(Frmname).Txtgxquer = XQuer
    Forms(Frmname).Txtgxquerpsig = XQuer + Standard
    Forms(Frmname).Txtgxquermsig = XQuer - Standard
    DoCmd.GoToRecord , Frmname, acNext
Next i


End Function

Function FktMin(x, n)
Dim min As Single
Dim i As Integer

min = x(1)
For i = 2 To n
    If x(i) < min Then
        min = x(i)
    End If
Next i

FktMin = min
End Function

Function FktMax(x, n)
Dim max As Single
Dim i As Integer

max = x(1)
For i = 2 To n
    If x(i) > max Then
        max = x(i)
    End If
Next i

FktMax = max
End Function

Option Compare Database
Option Explicit

    Dim x(100) As Single
    Dim n As Integer
    Dim Dateiname As String
    Dim DateiPfad As String

Private Sub BtnGrafik_Click()

    DoCmd.OpenForm ("frmgrafik")

End Sub

Private Sub BtnRechne_Click()
    'DimBereich

    Dim XQuer As Single
    Dim Varianz As Single
    Dim Standard As Single
    Dim min As Single
    Dim max As Single

    'Eingabe
    Call SubEinlesen(x, n, Name) 'Prozedur

    'Verarbeitung
    XQuer = FktMittelwert(x, n)         'Xquer berechnen
    Varianz = FktVarianz(x, n, XQuer)   'Varianz berechnen
    Standard = Sqr(Varianz)             'Standard berechnen
    min = FktMin(x, n)
    max = FktMax(x, n)

    'Ausgabe
    FktAusgabe n, XQuer, Varianz, Standard, min, max, Name   'Ausgabe ###Funktion ohne!!!Rückgabewert Parameter ohne Klammern###
End Sub

Private Sub BtnSpeichern_Click()

    Call subSpeichern(x, n, Dateiname, DateiPfad, Name)


End Sub

Основной модуль

Option Compare Database
Option Explicit

    Dim x(100) As Single
    Dim n As Integer
    Dim Dateiname As String
    Dim DateiPfad As String

Private Sub BtnGrafik_Click()

    DoCmd.OpenForm ("frmgrafik")

End Sub

Private Sub BtnRechne_Click()
    'DimBereich

    Dim XQuer As Single
    Dim Varianz As Single
    Dim Standard As Single
    Dim min As Single
    Dim max As Single

    'Eingabe
    Call SubEinlesen(x, n, Name) 'Prozedur

    'Verarbeitung
    XQuer = FktMittelwert(x, n)         'Xquer berechnen
    Varianz = FktVarianz(x, n, XQuer)   'Varianz berechnen
    Standard = Sqr(Varianz)             'Standard berechnen
    min = FktMin(x, n)
    max = FktMax(x, n)

    'Ausgabe
    FktAusgabe n, XQuer, Varianz, Standard, min, max, Name   'Ausgabe ###Funktion ohne!!!Rückgabewert Parameter ohne Klammern###
End Sub

Private Sub BtnSpeichern_Click()

    Call subSpeichern(x, n, Dateiname, DateiPfad, Name)


End Sub

"Gui"

Спасибо за ваше время. Мне это действительно нужно, потому что работа оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...