Спасибо, что прочитали это. У меня есть база данных 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"
Спасибо за ваше время. Мне это действительно нужно, потому что работа оценена.