dex 09.02.2018 20:00
Predmet:Re: Iscitavajne iz CSV

Verovatno bi jadnostavnije bilo iz excela prvo "poravnati" csv, odnosno namestiti ga za uvoz u access, samo je potrebno poznavati strukturu csv, i po kom kriteriju idu podaci

Gjoreski 09.02.2018 15:30
Predmet:Re: Iscitavajne iz CSV

Da treba uvesti podatke iz CSV u Access tabeli

Avko 11.02.2018 17:36
Predmet:Re: Iscitavajne iz CSV

PreuzmiIzvorni kôd (Visual Basic):
  1. Sub OpenCsvFile()
  2.     Dim FilePath As String
  3.     FilePath = "C:\csvfile.csv"
  4.     Open FilePath For Input As #1
  5.         redBrojac = 0
  6.         Do Until EOF(1)
  7.             Line Input #1, linijaFile
  8.             linijaPodaci = Split(linijaFile, ",")
  9.             If redBrojac > 2 And redBrojac < 6 Then 'ucitaj od 3 do 5 reda
  10.                 'samo 2 i 3 kolonu
  11.                'ActiveCell.Offset(redBrojac, 0).Value = linijaPodaci(2)
  12.                ActiveCell.Offset(redBrojac, 1).Value = linijaPodaci(1)
  13.                 ActiveCell.Offset(redBrojac, 2).Value = linijaPodaci(0)
  14.             End If
  15.             redBrojac = redBrojac + 1
  16.         Loop
  17.     Close #1
  18. End Sub

csvFile.csv
PreuzmiIzvorni kôd (Text):
  1. Voce, Jabuka, 9780349114903
  2. Voce, Kruska, 9780349108858
  3. Voce, Sljiva, 9781841496030
  4. Voce, Tresnja, 9781841497228
  5. Povrce, Kupus, 1841492191
  6. Povrce, Mrkva, 1841492086
  7. Cvijece, Ruza, 9780553818109
  8. Cvijece, Tulipan, 9780553815870

Gjoreski 11.02.2018 14:24
Predmet:Re: Iscitavajne iz CSV

to je klasicni CSV File ili mozemo reci da je to stari EXCEL odnosno vrzije koi imaju ekstenzija .xls

Avko 09.02.2018 09:52
Predmet:Re: Iscitavajne iz CSV

trebas uvesti podatke iz csv fajla u access?

Gjoreski 08.02.2018 12:24
Predmet:Iscitavajne iz CSV

Kako iscitati Odredeni celije iz neki CSV fajl.
Da recimo: Treba iscitati celije od 4 i 5 red od klona Q do AF
i celije od red 6 do 15 i koloni od A do AI.

Gjoreski 12.02.2018 22:45
Predmet:Re: Iscitavajne iz CSV

Hvala na na svima za odgovori vreme koe su potrosili za resavajne ovog zadatka.
Iskoristio sam ova kod od @ZXZ koj e temelnije od onaj na @Avko koj isto tka odradi svoj posao.
Kod koj je stavio @ZXZ ima jos par interesanti funkcije kao sto su Putanja do Fajla i Kreirajne Tabeli i polje u tabeli .

Fala jos jedan put.

Avko 11.02.2018 03:07
Predmet:Re: Iscitavajne iz CSV

Gjoreski, a jesu li u tvojem fajlu podaci razdvojeni zarezom

zxz 10.02.2018 20:54
Predmet:Re: Iscitavajne iz CSV

Ovak kod ide u neki modul.
Pokrece se pozivom procedure importcsv a ulazni parametar je ime csv fajla.
Fajl se mora nalaziti u dir mdb baze.

PreuzmiIzvorni kôd (Visual Basic):
  1. Option Compare Database
  2. Option Explicit
  3. Function KreirajPolje(ImeTabele As String, ImePolja As String, TipPolja As Integer, _
  4. Optional Velicina As Integer, Optional Defolt)
  5. Dim Db As DAO.Database
  6. Dim tdf As DAO.TableDef
  7. Dim fld As DAO.Field
  8. '............................................
  9. 'Tip polja
  10. '1-jes/No
  11. '2-Number(Byte)
  12. '3-Number(Integer)
  13. '4-Number(Long Integer)
  14. '5-Currency
  15. '6-Number(Single)
  16. '7-Number(Double)
  17. '8-Date/Time
  18. '9-Binary
  19. '10-Text
  20. '11-OLE Object
  21. '12-Memo
  22. '.............................................
  23. Set Db = CurrentDb()
  24. Set tdf = Db.TableDefs(ImeTabele)
  25. Set fld = tdf.CreateField(ImePolja, TipPolja, Velicina)
  26. tdf.Fields.Append fld
  27.  
  28. Set tdf = Nothing
  29. Set fld = Nothing
  30. Set Db = Nothing
  31. End Function
  32. Function KreirajTabelu(ImeTabele As String)
  33.  
  34. Dim Db As DAO.Database
  35. Dim fld As DAO.Field
  36. Dim tdf As DAO.TableDef
  37.  
  38. Set Db = CurrentDb
  39. For Each tdf In Db.TableDefs
  40. If tdf.Name = ImeTabele Then
  41. DoCmd.DeleteObject acTable, ImeTabele
  42. End If
  43. Next tdf
  44.  
  45. Set Db = CurrentDb
  46. Set tdf = Db.CreateTableDef(ImeTabele)
  47. Set fld = tdf.CreateField("ID", dbLong)
  48. fld.Attributes = dbAutoIncrField
  49.     With tdf.Fields
  50.         .Append fld
  51.         .Refresh
  52.     End With
  53. Db.TableDefs.Append tdf
  54.     Set fld = Nothing
  55.     Set tdf = Nothing
  56.     Set Db = Nothing
  57. End Function
  58. Function ImportCSV(ImeCsv As String)
  59. Dim Db As DAO.Database
  60. Dim Rs0 As DAO.Recordset, Rs1 As DAO.Recordset
  61. Dim Putanja As String, SQL(1) As String, temp(1) As String, tmp(1) As String, ImePolja() As String
  62. Dim I As Integer, Poz(3) As Integer, Broj As Integer, BrojPolja As Integer
  63.  
  64.  
  65.  Set Db = CurrentDb
  66.  Putanja = Db_Putanja
  67.  KreirajTabelu "Prva"
  68.  KreirajPolje "Prva", "Red4", 3
  69.  KreirajPolje "Prva", "Red5", 3
  70.  KreirajTabelu "Druga"
  71.  SQL(0) = "SELECT * FROM Prva"
  72.  SQL(1) = "SELECT * FROM Druga"
  73.  Close #1
  74.  Open Putanja & ImeCsv For Input As 1
  75. While Not EOF(1)
  76.     If I = 5 Then
  77.     Set Rs1 = Db.OpenRecordset(SQL(1))
  78.     End If
  79.     Poz(1) = 1
  80.     Poz(0) = 1
  81.     Poz(2) = 1
  82.     Poz(3) = 1
  83.     BrojPolja = 0
  84.     I = I + 1
  85.    
  86.  Line Input #1, temp(0)
  87.  temp(0) = temp(0) & ";"
  88.  
  89.     If I = 4 Then
  90.      Set Rs0 = Db.OpenRecordset(SQL(0))
  91.      Line Input #1, temp(1)
  92.      temp(1) = temp(1) & ";"
  93.        Do While Len(temp(0)) <> Poz(1)
  94.        Poz(1) = InStr(Poz(0), temp(0), ";")
  95.        tmp(0) = Mid(temp(0), Poz(0), Poz(1) - Poz(0))
  96.        Poz(3) = InStr(Poz(2), temp(1), ";")
  97.        tmp(1) = Mid(temp(1), Poz(2), Poz(3) - Poz(2))
  98.             If tmp(0) <> "" Then
  99.             Broj = Val(tmp(0))
  100.                  If Broj > 0 Then
  101.                    Rs0.AddNew
  102.                    Rs0.Fields(1) = tmp(0)
  103.                    Rs0.Fields(2) = tmp(1)
  104.                    Rs0.Update
  105.                  End If
  106.             End If
  107.        Poz(0) = Poz(1) + 1
  108.        Poz(2) = Poz(3) + 1
  109.        Loop
  110.        Rs0.Close
  111.     ElseIf I = 5 Then
  112.         Do While Len(temp(0)) <> Poz(1)
  113.         Poz(1) = InStr(Poz(0), temp(0), ";")
  114.         tmp(0) = Mid(temp(0), Poz(0), Poz(1) - Poz(0))
  115.         BrojPolja = BrojPolja + 1
  116.         tmp(0) = tmp(0) & BrojPolja
  117.         ReDim Preserve ImePolja(BrojPolja)
  118.         ImePolja(BrojPolja) = tmp(0)
  119.         KreirajPolje "Druga", tmp(0), 10, 25
  120.         Poz(0) = Poz(1) + 1
  121.         Loop
  122.     ElseIf I > 5 Then
  123.         If Left(temp(0), 30) = String(30, ";") Then GoTo Kraj
  124.         Rs1.AddNew
  125.         Do While Len(temp(0)) <> Poz(1)
  126.         BrojPolja = BrojPolja + 1
  127.         Poz(1) = InStr(Poz(0), temp(0), ";")
  128.         tmp(0) = Mid(temp(0), Poz(0), Poz(1) - Poz(0))
  129.         If tmp(0) <> "" Then
  130.         Rs1(ImePolja(BrojPolja)) = tmp(0)
  131.         End If
  132.         Poz(0) = Poz(1) + 1
  133.         Loop
  134.         Rs1.Update
  135.     End If
  136.    
  137. Wend
  138. Kraj:
  139.  Rs1.Close
  140.  Set Db = Nothing
  141. End Function
  142.  
  143. Function Db_Putanja() As String
  144.  '--------------------------------------------------------------------------------------
  145. 'Ova funkcija pronalazi putanju postojee baze
  146. 'Autor funkcije ZXZ
  147. '__________________________________________________
  148.    Dim Db As Database, Putanja As String
  149.    
  150.     On Error Resume Next                                     'Ako naieÅ¡ na greÅ¡ku nastavi
  151.    Set Db = DBEngine(0)(0)                                  'Setovanje baze
  152.    Putanja = Db.Name                                          'Upis putanje baze i njenog imena
  153.    Do Until Right$(Putanja, 1) = "\"                         'Petlja za odvajanje imena baze od putanje baze
  154.        Putanja = Left$(Putanja, Len(Putanja) - 1)
  155.     Loop
  156.  
  157.     Db_Putanja = Putanja                                      'Upis putanje u funkciju
  158. End Function
  159.  
  160.                 Print #2, temp
  161.            End If
  162.          Else
  163.            Print #2, temp
  164.          End If
  165.     Else
  166.      Print #2, temp
  167.     End If
  168. Wend
  169.      Close #1
  170.      Close #2
  171. Set Db = Nothing
  172. End Function

Gjoreski 10.02.2018 13:49
Predmet:Re: Iscitavajne iz CSV

Najbolje je iz CSV , jer CSV mozer iscitati i ako nema instaliran EXCEL na racunaru.
Naveo sam kriterija u postu #1.
Iscitavajne RED 4 i RED 5 od Colona Q do Colona AF.
Iscitavajne od RED 6 Colona A pa do Colona AI pa sve do zadni unjeti podatak odnosno dok ne naidzemo na przan red.