jeg er ret ny til VB, så i syntes nok det er for nemt, jeg har lavet et lille program til at holde styr på kunder, men efter jeg har skrevet noget i programmet og derefter lukker det ned, og åbner det igen så er det ting som jeg har skrevet ind blevet væk, hvordan kan jeg gemme det så det er der når jeg åbner programmet igen?
nej det er ikke det jeg mener. det er når jeg har lavet det hele. jeg sidder med programmet(som jeg har lavet) åbner det, skriver et eller andet, lukker programmet og åbner det igen, men så er det jeg har skrevet jo væk, jeg vil gerne vide hvordan jeg skal gemme det, altså noget med at lave en gem knap og få den til gemme det hele.
Hvis jeg forstår dig korrekt, taster du oplysninger ind i nogle felter. Derefter lukker du programmet, og alle dine oplysninger er forsvundet når du åbner det igen, ikk?
Hvis ikke du har prøvet at arbejdet med databaser, er det nemmeste nok at gemme oplysningerne i en teksfil (*.txt)
Hvis du har et tekstfelt der hedder text1 og en knap der hedder command1, kan du f.eks. gøre følgende:
Private Sub command1_Click() Dim minTekst As String minTekst = text1.Text
Open \"c:\\gemTekst.txt\" for output as #1 write, minTekst close #1 End Sub
Når du så skal hente informationen igen (f.eks. vha. en command2 knap) og indlæse det i tekst1 gør du følgende:
Private Sub command2_Click() Dim minTekst As String Open \"c:\\gemTekst.txt\" for input as #1 input, minTekst close #1
Jeg har også lige et spørgsmål om dette, hvad hvis man vil gøre det muligt selv at vælge hvad filen skal gemmes som (navn) og hvilken fil der skal åbnes, når programmet er lavet, sådan at man f.eks kan have 2 txt filer kørende eller flere også være istand til selv at vælge hvilken der skal åbnes i text1.
Du sætter bare en variabel ind i stedet for \"c:\\gemTekst.txt\":
Private sub SkrivFil(strFilnavn as String) dim strTekst as String strTekst = Text1.Text open filnavn for output as #1 print #1, strTekst close #1 End Sub
Sub Command1_Click() SkrivFil \"C:\\MinFil.txt\" End Sub
Private sub SkrivFil(strFilnavn as String) dim strTekst as String strTekst = Text1.Text open filnavn for output as #1 print #1, strTekst close #1 End Sub
Private sub SkrivFil(strFilnavn as String) dim strTekst as String strTekst = Text1.Text open filnavn for output as #1 print #1, strTekst close #1 End Sub
..ind i et module og lavet en knap med dette i:
Sub Command1_Click() SkrivFil \"C:\\MinFil.txt\" End Sub
men når jeg kører den og trykker på knappen kommer den med fejl og markere \"SkrivFil\" i command1 og den kommer med fejlen \" Compile error: sub or funktion not defined\" hvad betyder det og gør jeg det hele rigtigt
ja nu virker det godt nok men måske fik jeg ikke lige forklaret det ordentligt, det jeg gerne vil have er en box der kommer op og spørger hvor den skal gemmes, og hvad den skal hedde. hvis du kan svare mig på det laver jeg lige et spørgsmål med 30 point til dig.
Okay - der ville jeg bruge en commondialog kontrol. Vælg \'Microsoft Common Dialog Control 6.0\'. Højreklik på værktøjslinien til venstre eller vælg \'Project\' | \'Components (Ctrl-T)\'.
Private Sub Command1_Click() CommonDialog1.ShowSave SkrivFil CommonDialog1.FileName End Sub
Der er en masse indstillinger til CommonDialog, men prøv at rode lidt med dem.
Alternativt kan du bruge inputbox:
Private Sub Command1_Click() dim strStiNavn as string strStiNavn = inputbox(\"Skriv sti og filnavn - eks.: c:\\temp\\minfil.txt\",\"Gem fil\") SkrivFil strstinavn End Sub
private sub command2_click() \' Åbne en fil dim strFilNavn as string dim strTekstIFil as string strfilnavn = InputBox(\"Skriv sti og filnavn på filen der skal åbnes\",\"Åbn fil\") Open strfilnavn for input as #1 input #1, strtekstifil close #1 end sub
det for heller ikke indholdet af txt filen ind i text1, det åbner bare en msgbox hvor der står 1 linje af filen men 2 linje er der ikke og den kommer heller ikke ind i text1
Hvis du skal åbne en tekstfil med mere end en linie, skal du huske at din textbox skal stå til multiline = true (VB5)
Derudover skal du angive enten længden eller det antal linier du vil have ind i textboxen:
private sub command2_click() \' Åbne en fil dim strFilNavn as string dim strTekstIFil as string strfilnavn = InputBox(\"Skriv sti og filnavn på filen der skal åbnes\",\"Åbn fil\") Open strfilnavn for input as #1 \'------ cut ----- Se forslag herunder do while not eof(1) \'eller er det (#1) ? input #1, strtekstifil loop \'------ cut ----- close #1 end sub
Ovenstående er ikke testet, men bare sådan ud fra hovedet. Prøv selv at bruge din hjælpefunktion i VB og søg eventuelt efter open, print#, write# osv.
Det var også bare for at vise dig at den rent faktisk åbnede filen. Jeg skrev faktisk også \"...dvs den første linie af filen,... \". Er din fil på flere linier skal du gøre som mikker har beskrevet ovenfor. Og det er så vidt jeg husker do while not eof(1) der skal anvendes. Jeg ville skrive den således:
private sub Command2_Click() \' Åbne en fil dim strFilNavn as string dim strTekstIFil as string dim strHentetTekst as string strFilNavn = InputBox(\"Skriv sti og filnavn på filen der skal åbnes\",\"Åbn fil\") Open strFilNavn for Input As #1 Do While Not EOF(1) Input #1, strTekstIFil strHentetTekst = strHentetTekst & strTekstIFil & chr$(13) & chr$(10) Loop Close #1 Text1.Text = strHentetTekst End Sub Og husk - som mikker skrev - at MultiLine i Text1 skal være sat til True.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.