Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кто Excel часто юзает
 
 автор: час   (26.03.2012 в 18:15)   личное сообщение
 
 

Сейчас вот считываю данные с листов одной книги....
ну канечно:
Public Xl As Object
Public xlBook As Object
Public xlSheet As Object
Public row, col
Public asd As String

Set Xl = CreateObject("Excel.Application")
CREATE_EXCEL = True

Set xlBook = Xl.Workbooks.Open(SHEET_PATCH)

Set xlSheet = Xl.Worksheets(SHEET_NAME)
xlSheet.Activate
Xl.Application.Visible = True 'False '
Xl.UserControl = True

а дальше вопрос.

' Xl.Cells(1, 3).Select - эта строка нужна или нет?
asd = Xl.Cells(1, 3)
========================
Всё работает и без установки фокуса на ячейку.
Но сумниваюся. Я.
================================================

Второй вопрос?
Считываю я построчно лист EXCEL. Бегая циклом по строкам и столбцам. В каждой строке 20-25 ячеек.
И засовываю в таблицу Access.

типа

RST_COMMODITY_TBL.AddNew
RST_COMMODITY_TBL("ID_COMMODITY") = FUN_GENERATE
RST_COMMODITY_TBL("KOD_COMMODITY") = Xl.Cells(row, 2)
;RST_COMMODITY_TBL("COMMODITY_NAME") = Xl.Cells(row, 3)
RST_COMMODITY_TBL("CLIENT_NAME") = CLIENTS(col)
RST_COMMODITY_TBL("VIEW_TARA") = TARA(col)
' Xl.Cells(row, col).Select
asd = Xl.Cells(row, col)
RST_COMMODITY_TBL("AMOUNT_ZAYAVA") = Format(Val(asd), "#0.000")
RST_COMMODITY_TBL("COMMENTARII") = SHEET_NAME & " " & row & col
RST_COMMODITY_TBL("DATE_ZAYVA") = DATE_ZAYVA
RST_COMMODITY_TBL("USER_NAME") = GLB_USER_NAME
RST_COMMODITY_TBL("DATE_RECORDS") = Date
RST_COMMODITY_TBL.Update
Можно ли как то считывать диапазоном... - типа ускорить процесс

  Ответить  
 
 автор: silich   (26.03.2012 в 18:41)   личное сообщение
 
 

1. не сумневайсо ибо явно обращаешься к ичейке. вроде
2. а почему не хочешь аттачнуть лист эксель в аксесс и уже там морочиться, например? :)

  Ответить  
 
 автор: час   (26.03.2012 в 18:44)   личное сообщение
 
 

Я из VB6 это всё делаю.
Всё через АДОВО соединение.

  Ответить  
 
 автор: час   (26.03.2012 в 18:47)   личное сообщение
 
 

Ещё вопрос мну терзает.
Есть столбец в EXCEL - код товара.
Пишут код вручную.
Как бы мне по быстрому проверить , что нет в этоб столбце повторяющихся значений.

конечно в Access_овской таблице это просто сделать,
типа

Private Function DOBLE_KOD_COMMODITY(KOD_COMM As String) As Boolean

'' проверка наличия кода товара в базе (избежать задвоенного)
Dim RST_COMMODITY_TBL As ADODB.Recordset
Set RST_COMMODITY_TBL = New ADODB.Recordset
STR_COMMODITY = ""
RST_COMMODITY_TBL.Open "SELECT COMMODITY_TBL.* " _
& " From COMMODITY_TBL " _
& " Where (((COMMODITY_TBL.KOD_COMMODITY) = '" & KOD_COMM & "'))", GLB_DATA_DB_CONNECTION, adOpenKeyset, adLockOptimistic

If RST_COMMODITY_TBL.RecordCount = 0 Then DOBLE_KOD_COMMODITY = False '' Записей нету!!"
'
If RST_COMMODITY_TBL.EOF And RST_COMMODITY_TBL.BOF Then
' Записей нету!!"
DOBLE_KOD_COMMODITY = False
Else
' записи есть такой номер уже имеется
STR_COMMODITY = RST_COMMODITY_TBL("COMMODITY_NAME")
DOBLE_KOD_COMMODITY = True
End If
'
RST_COMMODITY_TBL.Close
Set RST_COMMODITY_TBL = Nothing

End Function

но это не подходит, потому как на следующем листе коды опять такие же.

  Ответить  
 
 автор: silich   (27.03.2012 в 10:18)   личное сообщение
 
 

http://support.microsoft.com/kb/213367/ru
http://office.microsoft.com/ru-ru/excel-help/HP010342518.aspx
http://otvety.google.ru/otvety/thread?tid=42a05ff5807687a3

  Ответить  
 
 автор: час   (27.03.2012 в 12:17)   личное сообщение
 
 

Спасибо!
Но мне нуна повторяющиеся номера в одном и том же столбце найти. Типа задвоенность.

  Ответить  
 
 автор: snipe   (27.03.2012 в 13:34)   личное сообщение
50 Кб.
 
 

=СЧЁТЕСЛИ(B1:$B$14;B1)-СЧЁТЕСЛИ($B$1:$B$14;B1)
ecли <0 то задваивается чем дальше 0 тем больше повторов
формула для верхней ячейки (растащить на необходимое количество строк)
ну и диапазон у меня маленький 14 строк всего

добавлено
вот=>

  Ответить  
 
 автор: час   (28.03.2012 в 14:18)   личное сообщение
 
 

Спасибо!

  Ответить  
 
 автор: час   (28.03.2012 в 14:18)   личное сообщение
 
 

Чё та я ваще ничё не понял......

  Ответить  
 
 автор: snipe   (28.03.2012 в 16:46)   личное сообщение
 
 

:))))
в свободном столбце excel вставляем формулу
=если(B1<>"";СЧЁТЕСЛИ($B$1:$B$65535;B1)-СЧЁТЕСЛИ(B1:$B$65535;B1);"")
и копируем ее на весь столбец
в данном случае имеется ввиду что формула находится в первой строке (по исчислению excel)
а столбец в котором надо искать повторы - это В
если 0 то повторов не найдено если любая другая цифра то таких значений на одну больше (т.е. то которое с 0 и это с циферкой)

  Ответить  
 
 автор: час   (28.03.2012 в 21:54)   личное сообщение
 
 

ааааааааааа
а несколько пустых - оно как ?
как повторы?

  Ответить  
 
 автор: snipe   (29.03.2012 в 03:36)   личное сообщение
 
 

пустые не считаются

  Ответить  
 
 автор: час   (29.03.2012 в 10:48)   личное сообщение
 
 

Спасибо !

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList