Avatar billede vision-jsp Nybegynder
20. november 2002 - 23:24 Der er 10 kommentarer og
1 løsning

Feltbeskrivelse fra semikolon separeret fil

Er der en som kan forklare mig hvordan jeg kan overfører felt-beskrivelsen på et antal felter i en tabel, fra en semikolon sep. fil.

Tabellen findes i Access fx:
felt1: MANDT
felt2: KUNNR
felt3: BUKRS

Filen med beskrivelsen ser ud som følger:
MANDT;Client
KUNNR;Customer number
BUKRS;Firmakode

VBA er ok...

Jakob
Avatar billede mugs Novice
20. november 2002 - 23:32 #1
Jeg er ikke sikker på hvad du konkret mener, men hvis du ønsker data om tabel / felter i en Access database så kan du bruge:
Funktioner > Analyser > Strukturvisning
Avatar billede sjap Praktikant
20. november 2002 - 23:41 #2
Hvis du bruger import wizarden så får du i det andet skærmbillede mulighed for at angive at første række indeholder feltnavne. Det ser dog ud til at din fil "vender" forkert.
Avatar billede sjap Praktikant
20. november 2002 - 23:45 #3
Access kan uden problemer hente rækkeoverskrifter fra filer, der ser således ud:

"MANDT";"KUNNR";"BUKRS"
client1;customer1;firmakode1
client2;customer2;firmakode2
client3;customer3;firmakode3
client4;customer4;firmakode4

SÅ hvis du kan få din fil til at vende denne vej, er løsningen ret enkel.
Avatar billede mugs Novice
20. november 2002 - 23:52 #4
2 spørgsmål:

- Har jeg misforstået det hele?
- Hvornår lærer jeg at holde min mund?
Avatar billede sjap Praktikant
20. november 2002 - 23:57 #5
Mugs

1. Måske - hvis ikke, så har jeg!
2. Du prøver jo bare på at hjælpe. Det er da al ære værd. Desuden er det menneskeligt at fejl (og jeg er MEGET menneskelig).  :-)

/jap
Avatar billede morch Nybegynder
21. november 2002 - 06:53 #6
Hvis din tekstfil er i det format du beskriver i dit spørgsmål :

Brug dette asp script :

<%
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN
%>
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("tekstfilnavn.txt")
Set f = fso.OpenTextFile(filespec,1)

Do While not f.AtEndOfStream
x=x+1
linie=f.ReadLine
poster=split(linie,";")
if x=1 then   
strSQL = "insert into tabel1 (" & poster(0)&") values ('"& poster(1) &"');"
    kolonnenavn=poster(0)
    postdata=poster(1)

else
strSQL = "update tabel1 set " & poster(0)&" = ("& poster(1) &") where "& kolonnenavn & "='"& postdata &"';"
end if
response.write strsql
    Set rs = myConn.Execute(strSQL)

Loop

f.Close
%>

MANDT er her tekst, hvis ikke skal insert sql'en se sådan ud :
strSQL = "insert into tabel1 (" & poster(0)&") values ("& poster(1) &");"

KUNNR og BUKRS forventer jeg er tal - hvis ikke skal update sql'en se sådan ud :
"update tabel1 set " & poster(0)&" = ('"& poster(1) &"')

/morch
Avatar billede vision-jsp Nybegynder
21. november 2002 - 09:15 #7
Til alle

Kolonnenavne OG data er allerede i databasen. Det eneste jeg mangler er beskrivelsen på kolonnerne. Det er den jeg har i filen. Første kolonne i filen er så kolonnenavnet i Access. Beskrivelsen er fx.: "Dette felt indeholder kundenummer".

Det er ren og skær "properties" på en tabel-definition.
Avatar billede juks Novice
21. november 2002 - 09:30 #8
Function GetFieldDesc_DAO(ByVal MyTableName As String, _
  ByVal MyFieldName As String)
  Dim DB As DAO.Database
  Dim TD As DAO.TableDef
  Dim FLD As DAO.Field
    Dim des As DAO.Field
    Dim idxCountry As Index

  Set DB = CurrentDb

  On Error GoTo Err_GetFieldDescription

  Set TD = DB.TableDefs(MyTableName)
  Set FLD = TD.Fields(MyFieldName)

With FLD.Properties("description")
        .Value = "jonas"
End With
 

Bye_GetFieldDescription:
  Exit Function

Err_GetFieldDescription:
  Beep
  MsgBox Err.Description, vbExclamation
  'GetFieldDescription = Null
  Resume Bye_GetFieldDescription

End Function
Avatar billede juks Novice
21. november 2002 - 09:40 #9
jeg arbejder lige videre med den sidste del asf koden
Avatar billede juks Novice
21. november 2002 - 11:10 #10
Dim MyString, MyString2, MyString3, MyString4, lengt, MyNumber
On Error GoTo Err_Kommandoknap6_Click

Open "c:\jakob.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, MyString

MsgBox MyString
lengt = Len(MyString)
MyString2 = InStr(1, MyString, ";", vbTextCompare)
MyString3 = Left(MyString, MyString2 - 1)
MyString4 = Mid(MyString, MyString2 + 1, lengt)

  Dim DB As DAO.Database
  Dim TD As DAO.TableDef
  Dim FLD As DAO.Field
    Dim des As DAO.Field

  Set TD = DB.TableDefs(Me.Text5)
  Set FLD = TD.Fields(MyString3)


With FLD.Properties("description")
        .Value = MyString4

End With
Loop
Close #1
Exit_Kommandoknap6_Click:
    Exit Sub

Err_Kommandoknap6_Click:

    MsgBox err.Description
   
    Resume Exit_Kommandoknap6_Click
   

End Sub
Avatar billede juks Novice
21. november 2002 - 14:19 #11
glemte lige at du skal angive db'en


Set DB = CurrentDb()
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester